8得票1回答
Windbg结合SOS,如何转储C#结构体

我该如何使用windbg转储结构体?是否有类似于dumpobject的dumpstruct命令?或者dumpobject也可以转储结构体吗?

8得票1回答
如何识别数组类型?

我遇到了一个OutOfMemoryException,我想分析需要创建的数组的大小和类型。 我已经为此情况创建了演示用转储,并且能够获取以下信息: 0:000> !pe Exception object: 023f389c Exception type: System.OutOfMe...

8得票2回答
调试混合模式(C#,C++)应用程序

我正在调试一个混合模式(托管和非托管)应用程序的问题。 实际问题在非托管代码中。 我已经将SOS dll加载到Windebugger中。但由于我加载了SOS dll,它只显示托管模式下的调用堆栈。我如何同时查看非托管代码的调用堆栈?

8得票3回答
使用Windbg SOS扩展逐步查看源代码

我最近从本地编程转换到托管代码编程,正在使用.NET。 由于我已经使用Windbg相当长一段时间,所以我也想在托管代码调试中使用它。 我的搜索引导我找到了SOS(Son of Strike)扩展程序,它似乎有一些强大的命令。 尽管我理解SOS中使用的大多数命令,但我无法像使用本机代码的p...

8得票3回答
如何在匿名方法中使WinDbg失效?

标题已经说得很清楚了。通常的SOS命令!bpmd如果没有名字就不起作用。 我想到的一些办法: 转储每个方法,然后在找到相应的MethodDesc时使用!bpmd -md 从我所知道的情况来看,在实际的世界应用中并不实用。即使我编写一个宏将转储限制为匿名类型/方法,也没有明显的方法可以...

8得票1回答
为什么我在使用Windbg与SOS和.Net Core 3.1时,使用!bpmd时我的断点没有被触发?

我最近学习了在Windbg中使用sos进行托管代码调试的过程。我查看了许多示例,从我所看到的来看,这应该可以工作。但事实并非如此。这是一个.net core 3.1应用程序。 我只是想在下面非常简单的Main方法内部打断点。 namespace ConsoleAppTest { ...

7得票2回答
有没有一条Windbg命令可以查找一个进程是32位还是64位?

有没有Windbg/NTSD命令可以告诉我,我在实时调试会话中附加的进程是32位还是64位? 请分别告诉我以下两种情况: 1. 未管理的进程? 2. 管理的进程? 对于管理的进程,我可以在C#中以编程方式找到它,但我仍然想知道是否有Windbg命令。 更新 我正在调试的目标进程是Mi...

7得票2回答
Windbg - 转储 System.Guid

当我在windbg中使用!do命令查看System.Guid对象时,会得到该GUID对象的字段列表。如何查看该GUID的值(字符串表示形式)?

7得票6回答
实时调试栈溢出问题

我有一个托管代码的Windows服务应用程序,由于托管StackOverFlowException,它偶尔会在生产中崩溃。我知道这是因为我在崩溃模式下运行了adplus,并使用SoS分析了崩溃转储。我甚至附加了windbg调试器,并将其设置为“go unhandled exception”。 ...

7得票1回答
当使用!gcroot和SOS时,一个对象没有根是什么意思?

我正在追踪一个内存泄漏问题,在使用以下命令: !dumpheap -stat !dumpheap -mt !gcroot 然而,!gcroot没有显示任何内容。我一直认为这意味着该对象没有引用,但尚未被收集。但我不太自信。 0:018> !dumpheap -mt 000007f...