1 year ago

#376332

test-img

Dominique

Newbie at dotNet dump analysis: dotnet-dump and clrstack -all

I am working with a multi-threaded application, which should reguarly be launching a thread, asking about the status of some "cars".
As one of the threads is still working (visible in Process Explorer and in the "Threads" part of the memory dump), I believe I'm dealing here with a deadlock.
In order to investigate this, I have downloaded dotnet-dump and I launched the following command in commandline:

Prompt> dotnet-dump.exe analyze "Dumpfile.DMP"

Once inside this dotnet-dump session, I have tried launching clrstack -all, as indicated in this URL.

This, however, seems not to be working:

> clrstack -all
Failed to load data access module, 0x80004002
Can not load or initialize mscordacwks.dll. The target runtime may not be initialized.

For more information see https://go.microsoft.com/fwlink/?linkid=2135652
> setsymbolserver -ms
Added Microsoft public symbol server
> clrstack -all
Failed to load data access module, 0x80004002
Can not load or initialize mscordacwks.dll. The target runtime may not be initialized.

For more information see https://go.microsoft.com/fwlink/?linkid=2135652

I have followed the advise in that webpage but no success.
In top of this, I have different "mscordacwks.dll" files on my PC. How can I know which one to take?
Or even better, is there an easier way to investigate a dotNet memory dump for deadlock analysis?

Edit: For your understanding: I have the application open in Visual Studio, but I know from previous experience that tools like "Windbg" have commands like !locks which can be used for (dead)lock analysis. While searching on how to investigate (dead)locks in .Net, I stumbled upon the dotnet-dump tool.

c#

.net

debugging

deadlock

dump

0 Answers

Your Answer

Accepted video resources