常用的找错办法就是先确认你刚刚改动了哪些语句,然后用/*和*/把可能出错的语句屏障掉,如果运行后还不通过就再扩大范围。即使有一段程序你觉得不可能有什么问题或以前工作正常也要试试将它屏障,有时就是在似乎最不可能出错的地方出了问题。
还有一种大家都经常用的找错办法就是把一些变量的值显示在屏幕上,或是把程序运行的详细过程存入文件中,出什么问题一目了然。如果再像QuakeIII一样用一个"控制台"显示出来就很酷了。
象其它编译器一样,VC.net提供了变量观察(Watch)、单步执行(Step)等常规调试手段,当然你首先需要把工程设为Debug模式。然后设置好断点(在要设置断点的那一行左边的灰色区域按一下即可,会出现一个红圆,程序运行到此处会暂停),按F5就可以开始调试。此时会出现一个调试工具栏:
图2.2 调试工具栏
图标的意义分别为:执行此语句,停止此语句的执行,停止调试,重新调试,显示即将执行的语句,调试入函数,跳过函数,调试出此{},用十六进制显示数据,显示断点情况。
大家还会注意到左下角出现了一个变量观察窗口,在这里可以非常方便地观察变量的值和改变情况。
我们还可以打开反汇编窗口、内存观察窗口和寄存器观察窗口,它们可是威力无比的,用起来非常爽。观察编译器生成的代码也是深入了解C++语言华丽的外表背后的真相的好办法。
VC++还提供了两条调试语句可以帮助你调试,第一条语句是assert。它的使用方法是assert(条件),你可以把它放到需要的地方,当条件不满足时就会显示一个对话框,说明在哪个程序哪一行出现了条件不满足,然后你可以选择停止,继续或是忽略。这条语句非常有用,因为直接执行程序时(而不是在VC++中调试)它也能工作。第二条语句是OutputDebugString (要输出的字符串),可以在屏幕下方编译窗口的调试那一栏显示这个字符串。
利用VC.net的开发环境调试是一项十分方便的事,只要你多调试(这不用刻意追求,因为它不可避免J),一定可以越来越熟练。
本书的C++语言部分到此可以告一段落了,但这里所讲述的只是C++语言的冰山一角,因为C++语言可被称为博大精深,而且它还在不断发展。希望大家在以后的日子里不要停止对C++语言的学习和研究,你一定会不断有新的感受和发现。最后推荐两本必读的好书:Scott Douglas Meyers的Effective C++和More Effective C++(其中不少内容我已经穿插到了前面的文字中J)。