vs2010断点调试详细教程
设置断点:在如下图中的红色圆点处设置断点,红色圆点表示已经在这行设置断点。快捷键F9。

启动调试:按F5或者点击左边红框中的按钮。右边框是开始执行(不调试)Ctrl+F5。

调试工具栏:下面是工具栏中对应的名称和快捷键。

在调试过程中F5是执行到下一个断点。F11是逐语句,在执行到下图中的断点时,按F11会执行到Fibonacci方法里面逐步记录执行过程。F10是逐过程,与逐语句不同的是,在执行到下图中断点时,再执行会执行断点下面的语句,而不是去执行语句中的方法。

局部变量:在调试过程中可以查看局部变量窗口,如下图里面会有变量的当前状态。如果找不到的话在

数组的状态表示如下图:

InteliTrace记录每一步的调试状态。

条件中断
开发人员设置断点,运行程序,利用不同的输入触发断点,然后在断点处手工检查是否满足某些特定的条件,从而决定是否继续调查。如果当前场景不是他们想要的,按F5继续运行程序,尝试别的输入,手动重复刚才的过程。
针对上述情况,Visual Studio提供了一个方便得多的功能——“条件中断”。只有当程序满足了开发人员预设的条件后,条件断点才会被触发,调试器中断。这将避免频繁地手工检查/恢复程序运行,大量减少调试过程中的手工和烦琐工作。
如何设置条件断点:
设置条件断点非常容易。在特定的行上,按F9设置断点。

然后右击断点–编辑窗口左侧的红点,在上下文菜单上选择“条件”。

这时弹出一个对话框供你设置激活该断点所需的条件。比如:我们希望只有当x==5时,调试才中断。我们可以写出如下的表达式:

现在我再运行这个程序按F5达到条件断点,只有当x等于5时,程序运行才会被中断。对于其它条件下的x值,断点将被跳过。
记录到达断点次数
有时你希望,只有当第N次满足条件的运行到达断点时,才中断程序运行。例如:当第一次命中断点。可以通过右击断点,然后在弹出菜单上选择“命中次数”菜单命令实现。

这时系统弹出一个对话框,它允许你指定:(1)当满足条件,而且进入断点的累计次数等于N时,断点命中一次。(2)当满足条件,而且进入断点的累计次数是N的倍数时,断点命中一次。(3)当满足条件,而且进入断点的累计次数大于N时,每次命中断点。

注意:如果多个条件同时用的话,结果取交集。
断点筛选器
例如,在调试一个服务程序时在其内部打上了断点,由于这是一个公用的服务不希望其他访问这个服务的程序被所设断点调试干扰,怎么办?断点筛选器就是限制只在某些进程和线程中设置断点。筛选器文本框中输入以下一个或多个子句,可以使用&(AND)、||(OR)、!(NOT)和圆括号组合这些子句描述应在何处设置断点的表达式,或者清除该表达式以便在所有进程和线程中设置断点。比如,希望断点只在被机器名为xye-PC的机器访问时才触发,我们可以右击断点进行断点筛选器设置。当其他机器访问程序的时候断点不会触发,其他机器访问时感觉不到断点的存在。

跟踪点—进入断点时的自定义操作
许多人不知道“跟踪点(TrackPoints)”这个调试功能。“跟踪点“是种特殊的断点,当它被命中时,它会触发一系列自定义操作。如果你想观察程序的行为,而又不想中断调试的时候,这个功能尤其有用。
我将用一个简单的控制台程序来演示如何使用“跟踪点”。如下是斐波那契数列的一个递归实现:

以上程序中,我们使用Console.WriteLine() 输出针对特定输入值生成的最终斐波那契数列。如果希望在调试器里观察操作中每一次递归运算后的数列而又不实际中断程序运行,该怎么办呢?“跟踪点”可以轻松实现。
设置跟踪点:
你可以在特定的行上,按F9加跟踪点。然后右击断点,在上下文菜单中选择“命中条件”:

在弹出对话框上,你可以设置命中该断点时,所触发的事件。

在上面例子中,我们设定一旦命中断点时就打印追踪信息。注意,我们已经把局部变量“x”的值,作为追踪信息的一部分输出。局部变量可以通过{变 量名}语法输出。你还可以利用系统内置的命令($CALLER, $CALLSTACK, $FUNCTION等等),在追踪信息中输出常用的调试值。
在上例中,我们同时选中了底端的“continue execution“选项,这说明我们不希望程序中断调试状态,而是继续运行。唯一的不同是:每次断点条件满足时,我们的自定义追踪信息都将被输出。
现在当我们运行程序时,会发现自定义追踪信息自动显示在Visual Studio的“输出“窗口里。这让我们很容易看到程序的递归调用过程:

你也可以选择往应用程序中添加一个自定义追踪信息的监听器。这时追踪点的输出信息将通过它输出,而不是Visual Studio的“输出“窗口。
相关文章

网络工程师必备的6款配置文件编辑神器:替代Notepad++!
本期文章介绍了六种网工必备工具,这些工具是网络工程师日常工作中必不可少的,也是那些立志成为网络工程师的人应该熟悉的2026-04-13
首个版本v1.111已上线! VS Code开启周更狂飙模式
026年3月10日,微软宣布将Visual Studio Code(VS Code)更新节奏从月更提速至周更,并发布首个周更版本v1.1112026-03-11
还在手动打开浏览器、点击按钮、检查控制台报错?太累了!现在,最新的VS Code 1.110中AI可以直接调试浏览器2026-03-10
今天带大家来共同学习VC++6.0无法正常运行怎么办?下面就是详细完整的操作步骤,快跟小编一起来学习一下2026-02-27
vscode调试c代码始终找不到exe可执行文件的详细及解决办法
在 VS Code 中调试 C++ 项目时,常见报错:“无法启动调试会话:找不到可执行文件”,这个问题问题通常是由于环境配置不当、缺少编译步骤、路径设置错误、或是launch.json2026-02-27
vscode入门! 小白都能看懂的VS Code保姆级级使用教程
相对于其它前端工具来说,VSCode显得更加的流畅,今天就将我的学习经历和大家分享一下,希望可以帮助到有需要的人2026-02-27
2026年真正值得装、用得上、不鸡肋的 VSCode 插件,其实没那么多——挑10个“神级”不难,但得是每天打开就用、关掉就难受的那种2026-02-10
VS Code 和 VSCodium怎么选? vscode 和 vscodium之间的区别
咱们今天就来聊聊 Visual Studio Code (VS Code) 和 VSCodium的相似与区别,详细请看下文介绍2026-01-10
如何启用.NET Framework3.5? 一键安装net3.5解决软件依赖问题
你是否曾在安装某些软件时遇到过“需要.NET Framework 3.5”的提示?实,只需要几步简单的操作,你就可以轻松解决这个问题2025-10-28
在软件开发过程中,重构是一个非常重要的环节,重构可以提高代码的可读性、可维护性和可扩展性,使代码更加健壮和易于理解,本文将介绍如何使用 VSCode 进行 Java 代码重构2025-09-20






最新评论