【发布时间】:2014-08-19 14:40:56
【问题描述】:
实际上,问题在标题中。
例如,我可以在调试会话期间使用SOS.dll 提供的命令!dso 监视引用我的引用类型的行为。我的问题是如何在调试会话期间的定义时刻监视堆栈中包含的对象(引用类型和值类型)?是否有针对此类需求的调试工具?
【问题讨论】:
实际上,问题在标题中。
例如,我可以在调试会话期间使用SOS.dll 提供的命令!dso 监视引用我的引用类型的行为。我的问题是如何在调试会话期间的定义时刻监视堆栈中包含的对象(引用类型和值类型)?是否有针对此类需求的调试工具?
【问题讨论】:
如果您已连接并加载了 SOS 扩展,则命令 !clrstack -p(包含在 SOS 中)将显示线程的当前托管堆栈(带参数)。您可以运行 ~*e !clrstack 来转储所有线程的堆栈。
您还可以考虑加载 psscor2 (.net 2.0/3.0/3.5) /psscor4 (.net 4.0) 扩展 - 它具有 SOS 中没有的附加功能。
PSSCOR2 可以在这里下载:
http://www.microsoft.com/en-us/download/details.aspx?id=1073
PSSCOR4 在这里可用:
http://www.microsoft.com/en-us/download/details.aspx?id=21255
这篇博文很好地介绍了 psscor2(如果您运行的是 .net 4.0,则为 psscor4):
http://blogs.msdn.com/b/kaevans/archive/2011/04/11/intro-to-windbg-for-net-developers.aspx
【讨论】: