如何:使用“调用堆栈”窗口

本文详细介绍了如何利用「调用堆栈」窗口进行调试,包括中断或运行模式显示、切换堆栈帧、查看源代码与反汇编、处理非用户代码帧、显示与其他线程调用,以及如何设置断点和加载模块符号,是提升编程调试效率的重要指南。

http://msdn.microsoft.com/zh-cn/library/a3694ts5(VS.80).aspx

 

Visual Studio 版本

Visual Basic

C#

C++

J#

Web Dev

速成版

可用

可用

可用

可用

标准版

可用

可用

可用

可用

可用

专业团队版

可用

可用

可用

可用

可用

使用“调用堆栈”窗口可以查看当前堆栈上的函数或过程调用。

“调用堆栈”窗口显示每个函数的名称和编写它所用的编程语言。函数或过程名可能伴随有可选信息,如模块名、行号、字节偏移量以及参数的名称、类型和值。可以打开或关闭这些可选信息的显示。

一个黄色箭头标识执行指针当前所位于的堆栈帧。默认情况下,该帧的信息显示在源、“反汇编”、“局部变量”、“监视”和“自动”窗口中。如果想将上下文更改为堆栈上的另一个帧,可以在“调用堆栈”窗口中执行相应的操作。

当调试符号对部分调用堆栈不可用时,“调用堆栈”窗口也许就不能显示那部分堆栈的正确信息。将出现以下表示法:

[下面的帧可能不正确和/或缺失,没有为 name.dll 加载符号]

在托管代码中,“调用堆栈”窗口默认情况下隐藏非用户代码的信息。在隐藏信息处出现以下表示法:

[<外部代码>]

非用户代码是指除“我的代码”以外的任何代码。有关“我的代码”的更多信息,请参见如何:单步执行“仅我的代码”。使用快捷菜单可以选择显示非用户代码的调用堆栈信息。

默认情况下,“调用堆栈”窗口不显示与其他线程之间的相互调用。可以使用快捷菜单选择查看那些调用。

Note注意

显示的对话框和菜单命令可能会与“帮助”中的描述不同,具体取决于当前设置或版本。若要更改设置,请在“工具”菜单上选择“导入和导出设置”。有关更多信息,请参见 Visual Studio 设置

以中断模式或运行模式显示“调用堆栈”窗口

  • 在“调试”菜单中选择“窗口”,然后单击“调用堆栈”。

更改显示的可选信息

  • 右击“调用堆栈”窗口,然后在快捷菜单中设置或清除“显示 <需要的信息>”。

在“调用堆栈”窗口中显示非用户代码帧

  • 右击“调用堆栈”窗口,然后从快捷菜单中选择“显示外部代码”。

切换到另一个堆栈帧

  1. 在“调用堆栈”窗口中,右击要查看其代码和数据的帧。

  2. 从快捷菜单中选择“切换到帧”。

    一个带有卷尾的绿色箭头显示在所选帧旁。执行指针保留在原始帧中,仍然用黄色箭头标记。如果从“调试”菜单中选择“单步执行”或“继续”,执行将继续在原始帧中进行,而不是在选定的帧中进行。

显示与其他线程之间的来回调用

  • 右击“调用堆栈”窗口,并从快捷菜单中选择“包括对其他线程和来自其他线程的调用”。

查看调用堆栈上的函数的源代码

  • 在“调用堆栈”窗口中,右击要查看其源代码的函数,然后从快捷菜单中选择“转到源代码”。

查看调用堆栈上的函数的反汇编代码

  • 在“调用堆栈”窗口中,右击要查看其反汇编代码的函数,然后从快捷菜单中选择“转到反汇编”。

从“调用堆栈”窗口运行到特定函数

在函数调用的退出点上设置断点

加载模块符号

  • 在“调用堆栈”窗口中,如果要重新加载模块的符号,则右击显示该模块的帧,然后从快捷菜单中选择“加载符号”。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值