VS2010有用的快捷键:Ctrl+r、ctrl+w、切换空格显示。
?
设置方法为:编辑->高级->查看空白。
VS2010断点调试技巧分享
??设置断点:在下图红点处设置断点。红点表示该行已设置断点。快捷键F9。
?
开始调试:按F5或点击左侧红框中的按钮。右边框是Ctrl+F5开始执行(不是调试)。
?
调试工具栏:下面是工具栏中对应的名称和快捷键。
?
调试时,F5执行到下一个断点。 F11 是逐条语句。当执行到下图中的断点时,按F11将执行斐波那契方法,并一步步记录执行过程。 F10 是逐个进程。与statement-by-statement的区别在于,当执行到下图中的断点时,重新执行会执行断点下面的语句,而不是执行语句中的方法。
?
局部变量:在调试过程中,可以查看局部变量窗口,如下图所示,该窗口会显示变量当前的状态。如果找不到,请前往
?
阵列状态表示如下:
?
InteliTrace 记录每个步骤的调试状态。
?
条件中断
开发人员设置断点,运行程序,使用不同的输入触发断点,然后在断点处手动检查是否满足某些条件,以决定是否继续调查。如果当前场景不是他们想要的,请按F5继续运行程序,尝试其他输入,并手动重复该过程。
针对上述情况,Visual Studio提供了一个更加方便的功能——“条件中断”。只有当程序满足开发者预设的条件时,条件断点才会被触发,调试器才会中断。这样就避免了频繁的手动检查/恢复程序运行情况,大大减少了调试过程中的手动繁琐工作。
如何设置条件断点:
设置条件断点非常简单。在特定行上按 F9 设置断点。
?
然后右键单击断点——编辑窗口左侧的红点,然后在上下文菜单中选择“条件”。
?
将弹出一个对话框供您设置激活断点所需的条件。例如:我们希望只有当x==5时才中断调试。我们可以写出以下表达式:
?
现在我再次运行这个程序并按F5到达条件断点。只有当x等于5时,程序执行才会被中断。对于其他条件 x 值,将跳过断点。
记录到达断点的次数
有时您只想在满足条件的第N次运行到达断点时才中断程序。例如:第一次命中断点时。这可以通过右键单击断点并在弹出菜单上选择“命中数”菜单命令来实现。
?
此时系统会弹出一个对话框,允许您指定: (1) 当满足条件且累计断点次数等于N时,命断点一次。 (2) 当满足条件且累计进入断点的次数为N的倍数时,则命中断点一次。 (3) 当满足条件且累计进入断点次数大于N时,每次都命中断点。
?
注意:如果同时使用多个条件,结果将是交集。
断点过滤器
例如,调试服务程序时,在其中设置断点。由于这是一个公共服务,您不希望访问此服务的其他程序受到设置的断点调试的干扰。你该怎么办?断点过滤器将断点限制为仅限某些进程和线程。在过滤器文本框中输入以下一个或多个子句,可以使用 &(AND)、||(OR)、!(NOT) 和括号组合这些子句来描述应设置断点的表达式,或者清除该表达式在所有进程和线程中设置断点。例如,如果我们希望断点仅在名为 xye-PC 的机器访问时触发,则可以右键单击断点来设置断点过滤器。其他机器访问该程序时不会触发断点,其他机器访问该程序时也感觉不到断点的存在。
?
跟踪点——输入断点时的自定义操作
很多人不知道“TrackPoints”调试功能。 “跟踪点”是一个特殊的断点,当被击中时,会触发一系列自定义操作。如果您想在不中断调试的情况下观察程序的行为,此功能特别有用。
我将使用一个简单的控制台程序来演示如何使用“Trace Points”。以下是斐波那契数列的递归实现:
?
在上面的程序中,我们使用 Console.WriteLine() 输出针对特定输入值生成的最终斐波那契数列。如果您想在调试器中每次递归操作后观察数组而不实际中断程序,该怎么办? “追踪点”可以轻松实现。
设置追踪点:
您可以通过在特定行上按 F9 添加跟踪点。然后右键单击断点并在上下文菜单中选择“命中条件”:
?
在弹出的对话框中可以设置断点触发时触发的事件。
?
在上面的示例中,我们设置了在命中断点后打印的跟踪信息。请注意,我们已输出局部变量“x”的值作为跟踪信息的一部分。局部变量可以通过{变量名}语法输出。还可以使用系统内置命令($CALLER、$CALLSTACK、$FUNCTION等)在跟踪信息中输出常用的调试值。
在上面的例子中,我们还选择了底部的“继续执行”选项,这意味着我们不希望程序中断调试状态,而是继续运行。唯一的区别是:每次满足断点条件时都会输出我们自定义的跟踪信息。
现在当我们运行程序时,我们会发现自定义的跟踪信息自动显示在Visual Studio的“输出”窗口中。这样我们就可以很容易的看到程序的递归调用过程:
?
您还可以选择向应用程序添加自定义跟踪信息的侦听器。此时,跟踪点的输出信息将通过它输出,而不是Visual Studio的“输出”窗口。
前天,博主遇到了一件令人兴奋的事情。笔记本电脑的电源在某个时刻被断开,导致其突然关闭。新添加的代码没有及时保存。
重启电脑后,打开VS,弹出信息询问是否恢复之前修改的文档。我以为之前用这个恢复功能没有问题,就恢复一下吧。然而,当我恢复后重新打开那些文档时,结果却是一片空白,而且打开时自动选择用记事本打开。天哪,我当时就差点惊呆了。后来我通过下面的方法恢复了。
VS异常关闭前最后一次编译的备份文档可以在以下路径找到:
打开备份文件文件夹,可以看到最近打开的项目文件夹,然后找到需要恢复的文件所在的项目文件夹。里面保存的是VS异常关闭前最后一次编译的备份文件。先打开它。文件正常吗?如果是,则修改文件名(即去掉之前的日期和时间,使其与原文件名一致),然后复制并替换项目中的异常文件!