Tag: sos

请解释一下!SyncBlk windbg命令

首先,是否有一个命令来获取windbg每个sos命令的帮助和参数? 其次,我想了解!syncblk输出 Index SyncBlock MonitorHeld Recursion Owning Thread Info SyncBlock Owner 201 05b9493c 979 1 05bc1040 bcc 45 022f3490 System.Collections.ArrayList 2875 05b4c914 1 1 17b99e10 1af8 290 024862d8 MyClass 2945 05b4b66c 1 1 17d1a290 12c0 752 02482940 MyClass MonitorHeld显示MonitorHeld保持的监视器synblk 。 写入1和读取2,但列的其余部分是什么意思? 说我有一个C#代码 MyClass MyObj; MyObj = new MyClass(); 现在,如果我这样做 lock (MyObj) { } syncblk所有者列是否会显示“MyClass”? 同样当我运行这个!SyncBlk命令时,它究竟是什么向我展示? […]

使用WinDbg从minidump确定InnerException的行号

我正在尝试从转储中追踪NullReferenceException。 NullReferenceException不是崩溃exception,而是崩溃exception是TargetInvocationException,其InnerException是NullReferenceException。 我正在使用带有SOS的Windbg,我使用命令analyze -v ,这给了我NullReferenceException的调用堆栈: EXCEPTION_OBJECT: !pe f6cb150 Exception object: 000000000f6cb150 Exception type: System.NullReferenceException Message: Object reference not set to an instance of an object. InnerException: StackTrace (generated): SP IP Function 000000002CD9D8C0 000007FF01E7C639 MyDll!DoSomething2()+0xe99 000000002CD9DBE0 000007FF01E7B11D MyDll!DoSomething1()+0x43d 000000002CD9DD20 000007FF01E7AB11 MyDll!WorkerDoWork(System.Object, System.ComponentModel.DoWorkEventArgs)+0x51 000000002CD9DD80 000007FEEA68A0F2 System_ni!System.ComponentModel.BackgroundWorker.WorkerThreadStart(System.Object)+0x62 请注意,我得到了具有字节偏移的方法名称,但没有行号。 DoSomething2是一个很大的函数,所以NullReferenceException发生的地方并不明显。 我试图按照Tess Ferrandez博客中的说明操作: .Netexception – 跟踪代码中发生exception的位置 但是我很早就陷入困境,我尝试使用DoSomething2:7FF01E7C639的IP来确定方法DoSomething2的方法描述符!ip2md: > !ip2md 7FF01E7C639 […]

WinDbg:SOS.dll x86 4.0.30319.237的副本

我正在使用WinDbg来查看进程转储。 转储已在具有.NET 4 SP1(4.0.30319.237)的x86服务器上进行。 我正在尝试使用x86版本的WinDbg在我的x64机器上进行调试,但是我遇到了以下问题。 0:000> !EEVersion The version of SOS does not match the version of CLR you are debugging. Please load the matching version of SOS for the version of CLR you are debugging. CLR Version: 4.0.30319.237 SOS Version: 4.0.30319.239 4.0.30319.237 retail Workstation mode SOS Version: 4.0.30319.239 retail build 由于我的机器已采用最近的安全补丁,SOS DLL文件现在为4.0.30319.239版本,因此我无法在WinDbg中使用任何CLR扩展。 我已连接到Microsoft符号服务器并获得了正确版本的mscordacwks.dll 。 […]