【问题标题】:Watching the .NET stack or CIL during Visual Studio 2010 debugging?在 Visual Studio 2010 调试期间查看 .NET 堆栈或 CIL?
【发布时间】:2010-10-02 00:05:50
【问题描述】:

我正在尝试调试已在发布模式下编译的程序集,因此所有像局部变量这样的“好东西”都被优化掉了。

作为第二种方法,我希望查看 CIL 和 .NET 堆栈,但我在 Visual Studio 2010 中似乎没有该选项 - 我只有反汇编、寄存器和内存视图,这是一个级别更低。

有没有办法在 Visual Studio 2010 中调试 CIL?

如果重要的话,这是 .NET 3.5 SP1。

【问题讨论】:

    标签: .net debugging visual-studio-2010


    【解决方案1】:

    这是 .NET 的基础,您从不执行 IL。 JIT 编译器将其翻译成机器代码,两者几乎没有共同之处。你看不到 IL 的执行,只有机器码。

    是的,你只需要知道局部变量的值是反汇编窗口和寄存器窗口。后者向您显示当它们被加载到 CPU 寄存器中时它们的值是多少。需要一些x86(或x64)汇编的知识,看C#和汇编代码的对应关系,才能知道哪些寄存器包含哪些局部变量。您必须使用内存窗口来查看堆栈,但这很不切实际,您需要知道 ebp 寄存器的值和偏移量。

    【讨论】:

    • 感谢 ebp 的提示。不像我想要的那样“好”,但我想这就是我所拥有的。
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2011-11-22
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    相关资源
    最近更新 更多