通过windbg查看dump文件中某个方法中的成员变量的值

使用 WinDbg 和 SOS 扩展来查看 C# 应用程序生成的 dump 文件中某个方法中的成员变量的值。以下是一些步骤:

  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. 使用 !clrstack 命令查看当前线程的调用堆栈。这将列出当前线程调用的所有方法。

  4. 找到你想要查看的方法,并记录下方法的地址。

  5. 使用 !dumpmd <MethodDesc 地址> 命令查看方法的元数据信息,这里替换 <MethodDesc 地址> 为你从上一步得到的方法地址。这将列出方法的所有局部变量和参数。

  6. 使用 !ip2md <方法地址> 命令查看方法的 MethodDesc 结构,这里替换 <方法地址> 为你从上一步得到的方法地址。这将列出方法的 MethodDesc 结构,包括方法的代码地址和局部变量/参数的地址。

  7. 使用 !dumplog 命令查看方法的局部变量/参数的值。这将列出方法的所有局部变量/参数的值,以及它们的地址。

  8. 使用 !do <地址> 命令查看成员变量的值,这里替换 <地址> 为你从上一步得到的地址。

注意:这个方法只对方法中的局部变量和参数有效。如果你的成员变量是在类中的,你需要知道哪个对象引用了它,然后用 !dumpheap -type!do 来找到它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值