一.Debug版本和Release版本的区别
Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。
只有Debug版本的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句。Release版本不包含任何调试信息,所以体积小、运行速度快。
一般而言Debug版本会比Release版本多出*.ilk文件和*.pdb文件。
1.*.ilk文件
ilk后缀全称为“Incremental Linking”,意即增量链接。
VC6中,“Project Setting à Link (Category:General)”默认勾选“Link incrementally”;相应VC2005中,“项目属性à配置属性à链接器à常规à启用增量链接”默认选项为“是 (/INCREMENTAL)”。
当选定渐增型编译链接时,链接器自动生成ILK文件,记录链接信息,也就是每次重新编译并不编译所有的源文件,只编译改动过的文件。而编译器怎么知道哪些编译过哪些未编译过呢,除了检查修改时间外,这个ilk文件也是很重要的信息。
2.*.pdb文件
pdb后缀全称为“Program Debug Database”,意即程序数据库文件。
VC6中,“Project Setting à Link (Category:General)”默认勾选“Generate debug info”, “Project Setting à Link (Category:Customize)”默认勾选“Use program database”;相应VC2005中,“项目属性à配置属性à链接器à调试”,默认“生成调试信息”选项为“是(/DEBUG)”,默认“生成程序数据库文件”处填写“.\Debug\*.pdb”。该选项对应的编译开关为/PDB。
符号文件(Symbol Files)是一个数据信息文件,它包含了应用程序二进制文件(比如EXE、DLL等)的调试信息,专门用来作调试之用,最终生成的可执行文件在运行时并不需要这个符号文件,但你的程序中所有的变量信息都记录在这个文件中。所以调试应用程序时,这个文件是非常重要的。用VC和 WinDbg调试程序时都要用到这个文件。
关于符号文件,参考《符号文件―Windows 应用程序调试必备》。
二.VC常用调试操作
快捷键
作用
F5
开始调试,逐断点调试
F9
设置(取消)断点
Ctrl+F10
调试到光标所在位置
F10
单步调试,遇到子函数跳过
F11
单步调试,遇到子函数跟踪进入内部
Shift+F11
从当前函数中跳出
Shift+F5
停止调试
一般F9设断点,F5启动后,F10、F11和Shift+F11交替使用,以在多个断点处调试。