如何在堆栈上查看我的托管对象?

时间:2010-04-09 03:35:30

标签: .net debugging sos

我在VisualStudio中使用SOS.dll来调试我的C#程序。该计划如下。

debug命令是!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对象名称

为什么没有?我认为应该有args i和局部变量j。

感谢我回答我天真的问题......

1 个答案:

答案 0 :(得分:3)

!dumpstackobject将堆栈上的引用转储到对象。即您将看不到使用此命令的值类型。使用!clrstack -l查看当地人(使用-p查看参数,并使用-a)。