msdn 如何使用call stack窗口:

http://msdn.microsoft.com/zh-cn/library/a3694ts5(v=vs.90).aspx

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

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

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

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

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

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

[<External Code>]

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

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

说明:

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

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

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

更改显示的可选信息

  • 右击“调用堆栈”窗口,然后设置或清除“显示 <所需信息>”。

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

  • 右击“调用堆栈”窗口,然后选择“显示外部代码”。

切换到另一个堆栈帧

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

  2. 选择“切换到帧”。

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

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

  • 右击“调用堆栈”窗口,然后选择“包括对其他线程和来自其他线程的调用”。

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

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

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

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

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

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

加载模块符号

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

在“调用堆栈”窗口中,可以为当前还未加载符号的代码加载调试符号。 这些符号可以是从 Microsoft 公共符号服务器下载的 .NET Framework 符号或系统符号,也可以是正在调试的计算机上的某个符号路径中的符号。

有关更多信息,请参见如何:使用符号服务器如何:指定符号路径

加载符号

  1. 在“调用堆栈”窗口中,右击还未加载符号的帧。 此帧将显示为灰色。

  2. 指向“加载符号”,然后单击“Microsoft 符号服务器”或“符号路径”。

设置符号路径

  1. 在“模块”窗口中右击任一模块。

  2. 单击“符号设置”。

    将打开“选项”对话框并显示“符号”页。

  3. 在“选项”对话框中单击“文件夹”图标。

    在“符号文件(.pdb)位置”框中将出现一个光标。

  4. 键入所调试的计算机上的符号位置的目录路径名。 对于本地调试,此计算机指您的本地计算机。 对于远程调试,此计算机指远程计算机。

  5. 单击“确定”关闭“选项”对话框。

vs2010 调试 调用堆栈 窗口的更多相关文章

  1. Windbg Call Stack(调用堆栈)窗口的使用

    调用堆栈是指向程序计数器当前位置的函数调用链.调用堆栈的顶部函数是当前函数,下一个函数是调用当前函数的函数,依此类推.显示的调用堆栈基于当前程序计数器,除非更改寄存器上下文. 在 WinDbg 中,可 ...

  2. VC调试篇:ASSERT(FALSE)时怎么办?查看调用堆栈

    问题简述 我们在调试程序时,经常会遇到程序中断的情况,就像下图这样. 我艹,这该怎么办,我们一下子就懵逼了.我们选择中断,常常会跳到一个莫名其妙的地方去. 正是这个断言 ASSERT(::IsWind ...

  3. 在 Visual Studio 中调试时映射调用堆栈上的方法

    本文转自:https://msdn.microsoft.com/zh-cn/library/dn194476.aspx 1.创建代码图,以便在调试时对调用堆栈进行可视化跟踪. 你可以在图中进行标注以跟 ...

  4. vs2010 调试快捷键

    vs2010 调试快捷键   命令名 快捷键 说明 调试.应用代码更改 Alt + F10 启动生成操作,利用它可以通过“编辑并继续”功能应用对正在调试的代码所作的更改. 调试.自动窗口 Ctrl + ...

  5. vs2010 调试C++程序 快捷键

    命令名 快捷键 说明 调试.应用代码更改 Alt + F10 启动生成操作,利用它可以通过“编辑并继续”功能应用对正在调试的代码所作的更改. 调试.自动窗口 Ctrl + D,Ctrl + A 显示“ ...

  6. go 代码的调试---打印调用堆栈

    本文介绍如何打印调用堆栈进行go代码的调试. 打印堆栈使用的runtime package中的Stack()函数 func Stack(buf []byte, all bool) int Stack ...

  7. 掌握VS2010调试 -- 入门指南

    1 导言 在软件开发周期中,测试和修正缺陷(defect,defect与bug的区别:Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的)的时间远多于写代码的时间.通常,debug是指发现缺 ...

  8. VS2010调试入门指南

    1 导言 在软件开发周期中,测试和修正缺陷(defect,defect与bug的区别:Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的)的时间远多于写代码的时间.通常,debug是指发现缺 ...

  9. VS2010调试 --指南 Reference from : http://blog.csdn.net/kingzone_2008/article/details/8133048

    1 导言 在软件开发周期中,测试和修正缺陷(defect,defect与bug的区别:Bug是缺陷的一种表现形式,而一个缺陷是可以引起多种Bug的) 的时间远多于写代码的时间.通常,debug是指发现 ...

随机推荐

  1. c/c++ double的数字 转成字符串后 可以有效的避免精度要求不高的数

    char n[100]; sprintf(n,"%lf",db);

  2. C# 委托和方法

    委托是一种特殊的引用类型,它将方法也作为特殊的对象封装起来,从而将方法作为变量或参数进行传递 using System; using System.Collections.Generic; using ...

  3. Hibernate与iBATIS的比较

    1.出身 hibernate 是当前最流行的o/r mapping框架,它出身于sf.net,现在已经成为jboss的一部分了. ibatis 是另外一种优秀的o/r mapping框架,目前属于ap ...

  4. BZOJ 1878: [SDOI2009]HH的项链( BIT )

    离线处理 , 记下询问的左右端点并排序 , 然后可以利用树状数组 , 保证查询区间时每种颜色只计算一次 ------------------------------------------------ ...

  5. JSP——页面三大部分(指令、脚本、动作组件)

    一.JSP简介: JSP(Java Server Pages,Java服务器端页面开发技术) JSP可以实现的技术都可以通过Servlet实现,他们本质上是一样的.但JSP设计的目的在于简化表示层的表 ...

  6. struts的MVC详细实现

    struts中核心类:ActionServlet,其中最主要的操作是RequestProcessor类中的process方法. struts实现mvc的详解图如下: 1.Tomcat一启动,根据web ...

  7. 不小心中了machook病毒

    此文运用的是优雅的Markdown而书 前段回家过年的日子,我心爱的小air在运行时不停的弹出"machook停止运行"的提醒,上网google一下不看不要紧,才得知是mac上的一 ...

  8. Laravel 单元测试

    前言 今天是第十三周周一,虽然接下来的时间会比较忙,比如各科的课设.考试.磨锤子.但是还是有种涅槃重生的感觉,昨晚的睡眠确实不怎么样,但是今天十分精神,已经想不起来多久没有这么早起了~让我累并快乐着吧 ...

  9. 如何修改Protel99SE原理图的标题栏

    本文主要讲述了如何修改Protel99SE原理图中的标题栏内容,使用者可以根据需要修改. 标题栏的格式: 1.添加模板:(1)菜单栏Design\Template\Set Template File ...

  10. 可以放在html代码中的自动跳转代码

    可以放在html代码中的自动跳转代码 有3种方法可以实现html的页面跳转,1,refresh   2,onload事件中加入代码  3,js实现 1.<html><body> ...