Visual Studio 中的调试
前面提到,可以采用两种方式执行应用程序:调试模式或非调试模式。在VS中执行应用程序时,它默认在调试模式下执行。例如,按下 F5
键或单击工具栏中的绿色 Play
按钮时,就是在调试模式下执行应用程序。要在非调试模式下执行应用程序,应选择 Debug | Start Without Debugging
,或按下 Ctrl
+ F5
。
VS 都允许在两种配置下创建应用程序:调试(默认)和发布(实际上,还可以定义其他配置,但这是一种高级技术,本书不涉及)。使用标准工具栏中的 解决方案配置
下拉框可在这两种配置之间切换。
在调试配置下生成应用程序,并在调试模式下运行程序时,并不仅是运行编写好的代码。调试程序包含了应用程序的符号信息,所以IDE知道执行每行代码时发生了什么。符号信息意味着跟踪(例如)未编译代码中使用的变量名,这样,它们就可以匹配已编译的机器码应用程序中现有的值,而机器码程序不包含便于人们阅读的信息。此类信息包含在 .pdb
文件中,这些文件位于计算机的 Debug
目录下,它们可以执行许多有用的操作,包括:
• 向IDE输出调试信息
• 在执行应用程序期间查看作用域内变量的值
• 暂停程序和重启程序
• 在代码的某个位置自动暂停程序的执行
• 一次执行程序中的一行代码
• 在应用程序的执行期间监视变量内容的变化
• 在运行期间修改变量内容
• 测试函数的调用
发布配置会优化应用程序代码,所以我们不能执行以上这些操作。但发布版本运行速度较快。完成了应用程序的开发时,一般应给用户提供发布版本,因为发布版本不需要调试版本所包含的符号信息。
本节介绍调试技巧,以及如何使用它们找出并修改未按预期方式执行的那些代码,这个过程称为调试。按照这些技术的使用方法把它们分为两个部分。一般情况下,可以首先中断程序的执行,再进行调试,或者注上标记,以便以后加以分析。在VS术语中,应用程序可以处于运行状态,也可以处于中断模式,即暂停正常的执行。下面首先介绍非中断模式(运行期间或正常执行)技术。