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

发布于 2024-08-28 09:11:42 字数 510 浏览 7 评论 0 原文

我在 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 。

谢谢你回答我幼稚的问题...

I use SOS.dll in VisualStudio to debug my C# program. The program is as below.

The debug command is !DumpStackObjects.

class Program
{
    static void Main()
    {
        Int32 result = f(1);
    }

    static Int32 f(Int32 i)
    {
        Int32 j = i + 1;
        return j;            <===========BreakPoint is here
    }
}

After I input the "!dso" command in the immediate window of Visual Studio, the result is as below:

OS Thread Id: 0xf6c (3948)

ESP/REG Object Name

Why there's nothing? I thought there should be the args i and local variable j.

Thanks for my answering my naive questions...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

锦欢 2024-09-04 09:11:49

!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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文