求查找内存泄漏的方法,或工具 由于程序很大,用boundscheck这些工具都很慢,无法忍受,不知哪位高手有一些比较好的查找内存泄漏的方法。现在程序的memory leak很多都是GDI方面的,还有处理字符串的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我有一个方法,不过必须是在debug下:1 #include <afx.h>2 在文件开头加上:#ifdef _DEBUG#define new DEBUG_NEW#endif3 按F5进入调试状态,如果在Output的debug窗口有一句"Detected memory leaks!"说明有内存泄漏,双击Output的Debug窗口检测到的内存泄漏例出的行,就可以到达内存泄漏代码行的位置。 楼上的强啊,不知道这个#define有什么来头,给讲讲吧? 用rational purify吧,弄个好机子 AppVerifierHolodeckBoundCheck you can download appVerifier from ms web, it's very useful BoundCheck是比较慢,程序比较大的话,我们这里通常是逐块测试,就是所谓的单元测试,一个个功能模块分开来测试。通常Memory Leak都是Pointer影响的,但是如果是MT编程,那么启动和禁止Thread和多个Thread之间通讯很容易Memory Leak,处理这里问题尤其简直是个噩梦。 Bounds Check项目越大越慢超过50个模块的话就可以死掉了... 我用的是 guoxiny(狼) 的办法,笨是笨了的,我自认为很有效。另外在说一个没出息的办法,在怀疑有泄露的地方让他多次循环,让他漏得多一点,通过windows任务管理器的性能就可以看出来。方法不好,不能大用。见笑了。 俺只用过BoundsCheck,个人感觉内存检查的工具都只能检查出那些明显的错误,而这些错误对于成熟的程序员来说遵守良好的编程习惯和约束规范就都能够避免而那些复杂的内存泄漏,工具也查不出来还得在代码上保证,跟踪调试当然,这类工具还是非常非常有用的,只是俺用过的dd太少 memory mapper, you can see how much ram has been allocated.May u good luck softice书店有这方面的使用说明书!!!还有就是---------段钢新出的那本《加密,解密》。。9月份的《程序员》上有一篇书评,说是上面有SOFTICE的使用说明,我今天也见到这本书了但是现在功力还不够,先买了一本-------罗的《windows环境下32位汇编语言》你可以先看看《加密,解密》。。上有没有,是不是符合你的要求!!! vs.net里面有内存泄漏监测功能,可以一用 多线程程序开发在windows server 2008中的问题 怎样改变Vc slider控件 底色 请问大家一个MCI的问题 在VC下使用资源管理器画的窗口,用此资源动态创建一个CPropertySheet控件中的一个Page,在中英文系统中显示正常,但是在日文系统中显示的控件的位置和大小都改变了,为什么? 如何读懂MFC原码 请问如何在程序中读文件? 我用API+VC++6.0练习的时候出现的问题,请大鸟帮忙解决 关于设置视图背景的问题? 小问题! 实现数字图像的扭曲、水波纹、漩涡等效果 如何学习VC windows系统编程,vxd技术编程大侠请进!!不够加分!!
1 #include <afx.h>
2 在文件开头加上:
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
3 按F5进入调试状态,如果在Output的debug窗口有一句"Detected memory leaks!"说明有内存泄漏,双击Output的Debug窗口检测到的内存泄漏例出的行,就可以到达内存泄漏代码行的位置。
Holodeck
BoundCheck
项目越大越慢
超过50个模块的话就可以死掉了...
另外在说一个没出息的办法,在怀疑有泄露的地方让他多次循环,让他漏得多一点,通过windows任务管理器的性能就可以看出来。
方法不好,不能大用。见笑了。
内存检查的工具都只能检查出那些明显的错误,而这些错误对于成熟的程序员来说
遵守良好的编程习惯和约束规范就都能够避免
而那些复杂的内存泄漏,工具也查不出来
还得在代码上保证,跟踪调试
当然,这类工具还是非常非常有用的,只是俺用过的dd太少
May u good luck
你可以先看看《加密,解密》。。
上有没有,是不是符合你的要求!!!