debugview 调试
vc++ 6.0 和Visual Studio * 在debug调试(F5)状态下都可以使用trace命令输出响应的调试信息。
然而在debug运行(Ctrl+F5)状态下或者Release状态下trace命令是无效的。
这个时候可以使用debugview.exe 查看trace或者OutputDebugString命令的输出结果。
VC中TRACE的用法有以下四种:
1:
TRACE ,就是不带动态参数输出字符串, 类似C的printf("输出字符串");
2:
TRACE 中的字符串可以带一个参数输出 , 类似C的printf("...%d",变量);
3:
TRACE 可以带两个参数输出,类似C的printf("...%d...%f",变量1,变量2);
4:
TRACE 可以带三个参数输出,类似C的printf("...%d,%d,%d",变量1,变量2,变量3);
TRACE 宏只有在调试状态下才有所输出,而以前用的Printf 函数在任何情况下都有输出。
<转自>http://blog.163.com/gou_ya/blog/static/102080580200810274839532/
1、用debugview,打开debugview,运行你的debug版本程序,可以定位到源文件的某一行。
2、包含stdlib.h crtdbg.h 两个头文件
在程序开始处添加 #define _CRTDBG_MAP_ALLOC
在程序结束处添加 _CrtDumpMemoryLeaks();
比如
#define _CRTDBG_MAP_ALLOC
int main(void)
{
char *p = new char;
return 0;
_CrtDumpMemoryLeaks();
}
运行debug版本的程序。在输出信息栏里会有内存泄露信息,可以定位到某一行