我爱Aspx >> VC.Net >> 关于VC代码的编写和调试(三)关于VC代码的编写和调试(三)
使用Visual C++调试器调试
一、调试版本与发布版本
有时程序能在调试版本运行但不能运行于发布版本,反之也有可能。一般说来,一个发布版本意味着某些类型的优化,而一个调试版本则没有优化。下面我们来看看它们的区别:
1 、特别针对调试版本的编译选项 (1)/MDd,/MLd或者/MTd
调试版本的运行时刻库有调试符号,使用了调试堆,调试堆的目的是发现内存破坏和内存泄漏,并且向用户报告源代码的哪个地方出了问题。特性:
.调试版本的运行时刻库对内存的分配作了跟踪,允许用户检查内存泄漏。
.在刚分配的内存里写上0xCD的字节模式,用0xCD来填充刚分配的内存,有助于发现数据未被初始化的错误。
.在被释放的内存写上0xDD的字节模式,有助于发现已被释放的内存。
.在缓冲区的两边分配了四字节的保护数据,并用0xFD的字节模式作初始化,来检查写内存的上溢出和下溢出。
.在每个内存分配的地方对源代码文件名和行号作了记录,有助于用户在源代码中对内存分配进行定位。
(2)/Od
通过串口收发短消息(上)[05-21]
A LITE VIRUS ABOUT PE INFECT[05-21]
让应用程序从IE中获取键入的网址[05-21]
Don Box:Smart Pointers : What..[05-21]
企业上网的几个理由[05-21]
如何在Linux下实现设备的配置[05-21]
非窗口类中使用定时器的方法(二..[05-21]
非窗口类中使用定时器的方法(一..[05-21]
非窗口类中使用定时器的方法[05-21]
深度探索win32可执行文件格式[05-21]