通过windbg查看dump文件中静态变量的值

作者 : admin 本文共529个字,预计阅读时间需要2分钟 发布时间: 2024-06-8 共4人阅读

可以使用 WinDbg 和 SOS 扩展来查看它们。下面是如何使用 WinDbg 和 SOS 的步骤:

  1. 打开 WinDbg,并用它打开你的 dump 文件。你可以使用 File → Open Crash Dump 来实现。

  2. 在命令行中,加载 SOS 扩展。一般来说这可以通过 .loadby sos clr 来完成。如果这个不工作的话,你可能需要全路径来加载 SOS.dll,这可能在类似于 "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll" 这样的地方找得到。

  3. 接下来,我们要找到你全局变量所在的类的 MethodTable 结构。你可以使用 !dumpheap -type 来找到你的类型,替换 为你的全局变量类型的全名(包括命名空间)。这将列出所有该类型的实例,以及它们的 MethodTable 地址。

  4. !dumpmt -md 来查看关于这个类的信息,这里替换 为你从上一步得到的地址。这将列出类的所有方法,以及所有静态字段/全局变量及其地址。

  5. 最后,用 !do 来查看你的全局变量当前的值。这里替换 为你在上一步中获得的地址。

注意:这个方法只对静态字段/全局变量有效。如果你的字段不是静态的,你需要知道哪个对象引用了它,然后用 !dumpheap -type!do 来找到它。

本站无任何商业行为
个人在线分享-虚灵IT资料分享 » 通过windbg查看dump文件中静态变量的值
E-->