I have a dump created from a managed application. I am using SOS/SOSEX extentions to ease my dump analysis. I'd like to list down the call stack of all managed threads as we do ~*kb with native applications. How do we do that?
Asked
Active
Viewed 3.9k times
32
Lieven Keersmaekers
- 55,505
- 12
- 105
- 142
sarat
- 9,954
- 7
- 39
- 73
3 Answers
50
Use the sos !EEStack command:
0:007> .load sos
0:007> !EEStack
Thomas Weller
- 49,619
- 19
- 114
- 198
Justin
- 82,493
- 48
- 216
- 356
-
6.loadby sos clr is better (for .NET 4) or .loadby sos mscorwks – Ana Betts Nov 17 '11 at 08:02
-
2For .net 4 i downloaded the .net 4 version of sos, Psscor4 http://www.microsoft.com/en-gb/download/details.aspx?id=21255, place the dll into the windbg folder - matching the correct dll with the correct windbg version (32bit|64bit) then to load `.load Psscor4.dll` – Chris Moutray Mar 08 '13 at 10:54
-
@sarat see JasonE's answer – Ohad Schneider Mar 16 '14 at 12:04
-
`!EEStack -short` – pkr May 18 '18 at 19:03
34
This command will dump all managed threads
~*e!dumpstack
Vadym Chekan
- 4,485
- 2
- 29
- 22
-
1Note that this requires the appropriate debugging extension to be loaded first via `.loadby sos clr` – Dirk Vollmar May 09 '18 at 15:57
-
1
15
with sosex, use ~*e!mk (~ - thread, * - all, e - execute this command, !mk - display managed stack. Most of the commands in sosex mirror the native command, but have the m (managed) in front of them.
JasonE
- 884
- 6
- 8