如何查看堆栈上我的托管对象?
我在 VisualStudio 中使用 SOS.dll 来调试我的 C# 程序。程序如下。
调试命令是!DumpStackObjects。
class Program
{
static void Main()
{
Int32 result = f(1);
}
static Int32 f(Int32 i)
{
Int32 j = i + 1;
return j; <===========BreakPoint is here
}
}
我在Visual Studio的立即窗口中输入“!dso”命令后,结果如下:
操作系统线程 ID:0xf6c (3948)
ESP/REG 对象名称
为什么什么都没有?我认为应该有参数 i 和局部变量 j 。
谢谢你回答我幼稚的问题...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
!dumpstackobject
将堆栈上的引用转储到对象。即,使用此命令您不会看到值类型。使用!clrstack -l
查看本地变量(使用-p
查看参数,使用-a
查看两者)。!dumpstackobject
dumps references on the stack to objects. I.e. you won't see value types with this command. Use!clrstack -l
to see locals (use-p
to see parameters, and-a
for both).