Visual Studio 中的调试

  前面提到,可以采用两种方式执行应用程序:调试模式或非调试模式。在VS中执行应用程序时,它默认在调试模式下执行。例如,按下 F5 键或单击工具栏中的绿色 Play 按钮时,就是在调试模式下执行应用程序。要在非调试模式下执行应用程序,应选择 Debug | Start Without Debugging,或按下 Ctrl + F5

  VS 都允许在两种配置下创建应用程序:调试(默认)和发布(实际上,还可以定义其他配置,但这是一种高级技术,本书不涉及)。使用标准工具栏中的 解决方案配置 下拉框可在这两种配置之间切换。

  在调试配置下生成应用程序,并在调试模式下运行程序时,并不仅是运行编写好的代码。调试程序包含了应用程序的符号信息,所以IDE知道执行每行代码时发生了什么。符号信息意味着跟踪(例如)未编译代码中使用的变量名,这样,它们就可以匹配已编译的机器码应用程序中现有的值,而机器码程序不包含便于人们阅读的信息。此类信息包含在 .pdb 文件中,这些文件位于计算机的 Debug 目录下,它们可以执行许多有用的操作,包括:

  1. IDE输出调试信息
  2. 在执行应用程序期间查看作用域内变量的值
  3. 暂停程序和重启程序
  4. 在代码的某个位置自动暂停程序的执行
  5. 一次执行程序中的一行代码
  6. 在应用程序的执行期间监视变量内容的变化
  7. 在运行期间修改变量内容
  8. 测试函数的调用

  发布配置会优化应用程序代码,所以我们不能执行以上这些操作。但发布版本运行速度较快。完成了应用程序的开发时,一般应给用户提供发布版本,因为发布版本不需要调试版本所包含的符号信息。

  本节介绍调试技巧,以及如何使用它们找出并修改未按预期方式执行的那些代码,这个过程称为调试。按照这些技术的使用方法把它们分为两个部分。一般情况下,可以首先中断程序的执行,再进行调试,或者注上标记,以便以后加以分析。在VS术语中,应用程序可以处于运行状态,也可以处于中断模式,即暂停正常的执行。下面首先介绍非中断模式(运行期间或正常执行)技术。