断点
Trace
Dump
ASSERT (VERIFY 发行版本)
AssertValid() const 对象合法性
ASSERT_VALID 宏
可以看到通过new分配的内存在显示信息时会报告出在哪一个文件的哪一行进行的new操作,而通过malloc分配的内存则仅仅是显示出内存泄露的信息而无法定位分配内存的程序位置。
此外需要在文件头部定义DEBUG_NEW宏才可以正确的跟踪new操作。具体代码如下:
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
由于对new操作的跟踪只需要在调试版本中出现所以使用了条件编译。
throw
try catch
本文探讨了在调试版本中如何使用DEBUG_NEW宏来跟踪new操作的位置信息,并解释了通过new与malloc分配内存时的不同表现。同时介绍了如何利用断点、TraceDump及ASSERT等手段定位程序中的对象有效性问题。
3883

被折叠的 条评论
为什么被折叠?



