I've got a thread deadlock error using .NET Core 2.0 and docker, but I don't know what happened in the container. So how to generate a dump file on different OS(Windows, Linux, Docker)? And which tool I can use to analyze the dump file? Is there any guidance?
@noahfalk
@mikem8361 is our expert on dumps
This doc can help setup .NET Core to generate core dumps (smaller "minidumps") on your Linux system. Or you can use the normal Linux mechanism to generate code dumps. For Windows, the windbg docs can help with generating a dump.
SOS is the tool you can use to analyze the dumps all of the supported platforms. Here is some documentation on setup SOS with the various platform debuggers: windbg (Windows), lldb (Linux and OS X).
@mikem8361 Thanks, I'll have a try.
And I hope this could be a feature in SDK so we can use some built-in commands to do it, like 'dotnet dump', 'dotnet profile'. As I know there are some tools in java like jmap, jstack and they are very popular and useful.
Did you find the relevant documentation?
I generated the "core.xxx" file in the container, but I don't know how to analyze it.
@fqybzhangji No, tried but failed. Seems like my dump file was not correct, so I gave up.
You can follow this documentation debugging-core-dumps-with-lldb, and GOOD LUCK!
I would like to know the problems you are having with loading a core dump. It works best if you load the core dump on the same machine it was generated so lldb can get the module symbols. You need to pass the "host" program on the command, etc.
Most helpful comment
@mikem8361 Thanks, I'll have a try.
And I hope this could be a feature in SDK so we can use some built-in commands to do it, like 'dotnet dump', 'dotnet profile'. As I know there are some tools in java like jmap, jstack and they are very popular and useful.