我在一些编程论坛上,经常看到有人问我的程序在Debug下是好的,可是到Release就挂掉了,或者在Release下是好的,但是在Debug下挂 掉了之类的问题,其实这种问题最好解决,因为只要一单步跟踪,查看它的调用堆栈,和函数调用顺序,错误就一览无余了。通常错误要么是对空指针进行操作,要 么是释放的那块内存已经不是当初申请的不一样大了,要么一次申请的内存调用了多次delete等等……
所以会编程序的人,首先要掌握的一门技术就是调试。可以说不会调试就等于不会编程。 VC++6.0自带了非常好的调试工具,使用起来非常方便,点F5就可以开始,单步是F10,单步进入是F11,等等。。关于调试的技术我就不多说了,这 里面的东西比较多,有好几个Debug相关的窗口,Watch ,Variables,Call Stack都非常有用。
但是,大家都知道在Release模式是不可以单步调试(其实也不是不能调试,而是跟踪不到源码)和设置断点的,因为这种方式编译的程序是不带调试符号的,所以到出错的地方,我们只能得到汇编码,而不能确认是那句源码出现的错误。
我们要怎么样才能在Release模式下能单步和断点呢? 很简单,照下面的步骤设置一下就可以了:
1.第一步:打开菜单 Project-> Setting...,选择所要设置的工程,并选择"Win32 Release":
2.第二步:选择C/C++ Tab,然后在Debug Info:列表里选择“Program Database”
3.第三步:选择Link Tab,然后钩选"Generate debug info"
相关文章