dotnet / dotnet/diagnostics

Create a lldb wrapper that downloads and sets everything needed to load a coredump

Open
#3,642 2 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
1.3k
Forks
404
Avg merge
2d 3h
Merged PRs (30d)
38

Description

There are a number of steps that are needed to load a coredump in lldb and get SOS to work:

1) Download/supply the "host" program on the lldb command line. This is the native application that .NET app was started: "dotnet", "apphost" or the single-file application binary.
2) Download and make available the libcoreclr.{so,dylib} before lldb is started otherwise the runtime module can't be found by SOS. Unless it is a full core dump, the actual runtime module file needs to be provide for the lldb module enumeration APIs SOS uses to find it.
3) Find and launch the lldb binary with the necessary options.

Live debugging with lldb does not have these problems; only core dump debugging so adding an option to dotnet-dump analyze that does those steps and ends up with lldb command prompt. Even though there is documentation on lldb dump debugging that uses dotnet-symbol to do those first 2 steps, but it seems that one of common problems our customers have is getting all this right.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.