请教关于VS2010中判断内存泄漏的问题?

clxye 2010-07-05 08:42:14
以前一直都用vc6.0的,当时检查内存泄漏主要用的是VC的 _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF)函数和Bounds Checker工具。长时间不用第一种方法已经不会用了。在2010中安装Bounds Checker好像用不了,安装后没有相应的工具栏,不知是不是不支持2010。

请问高手2010中有没有什么定位内存泄露的工具或方法?Bounds Checker有没有在2010下可用的版本?

谢谢!!

Detected memory leaks!
Dumping objects ->
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {45857} normal block at 0x023086A0, 44 bytes long.
Data: < R > 84 CF CE 52 0D 00 00 00 0D 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\plex.cpp(29) : {45856} normal block at 0x023085C0, 164 bytes long.
Data: < ^ 0 > 00 00 00 00 00 00 00 00 EE 19 5E B4 B0 86 30 02
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\map_sp.cpp(83) : {45855} normal block at 0x02308540, 68 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxtooltipctrl.cpp(39) : {45853} client block at 0x02308350, subtype c0, 252 bytes long.
a CMFCToolTipCtrl object at $02308350, 252 bytes long
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {45835} normal block at 0x02302C60, 40 bytes long.
Data: < R > 84 CF CE 52 0B 00 00 00 0B 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\plex.cpp(29) : {45834} normal block at 0x02307AE0, 164 bytes long.
Data: < ox p,0 > 00 00 00 00 00 00 00 00 6F 78 EA CD 70 2C 30 02
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\map_sp.cpp(83) : {45833} normal block at 0x02307880, 68 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxtooltipctrl.cpp(39) : {45832} client block at 0x023079A8, subtype c0, 252 bytes long.
a CMFCToolTipCtrl object at $023079A8, 252 bytes long
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {45813} normal block at 0x02307088, 38 bytes long.
Data: < R > 84 CF CE 52 0A 00 00 00 0A 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\plex.cpp(29) : {45812} normal block at 0x02306FA8, 164 bytes long.
Data: < T & p0 > 00 00 00 00 00 00 00 00 54 98 F9 26 98 70 30 02
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\map_sp.cpp(83) : {45811} normal block at 0x02306F28, 68 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxtooltipctrl.cpp(39) : {45810} client block at 0x02303840, subtype c0, 252 bytes long.
a CMFCToolTipCtrl object at $02303840, 252 bytes long
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\strcore.cpp(156) : {45790} normal block at 0x02303498, 38 bytes long.
Data: < R > 84 CF CE 52 0A 00 00 00 0A 00 00 00 01 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\plex.cpp(29) : {45789} normal block at 0x023033B8, 164 bytes long.
Data: < ?X 40 > 00 00 00 00 00 00 00 00 D6 3F 58 C0 A8 34 30 02
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\map_sp.cpp(83) : {45788} normal block at 0x02302E00, 68 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxtooltipctrl.cpp(39) : {45787} client block at 0x02302CC8, subtype c0, 252 bytes long.
a CMFCToolTipCtrl object at $02302CC8, 252 bytes long
Object dump complete.
...全文
988 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
clxye 2010-07-05
微软这么多年在这方面不会没有考虑到吧?

大家有没有其它建议?
  • 打赏
  • 举报
回复
踏实每一步 2010-07-05
没用过2010,不过第一种方法比较通用。
  • 打赏
  • 举报
回复
jijun1018 2010-07-05
我也想问下,感觉即使new 和 delete也会有内存泄露的地方
只不过比较少,想问下是为什么呀
  • 打赏
  • 举报
回复
帮顶。
  • 打赏
  • 举报
回复
BlueMap 2010-07-05
我觉得,最好的方式是要培养好的习惯,有new的地方同时写下delete。
对于大部分的内存泄露一般是new以后没delete引起的,可以用vs2005中的搜索功能,搜索所有的new然后查看哪个new后面没有delete。
  • 打赏
  • 举报
回复
guoln1010 2010-07-05
不懂 学习下
  • 打赏
  • 举报
回复
zhu6789888 2010-07-05
该库是嵌入到工程中的,用于检测内存泄露
  • 打赏
  • 举报
回复
zhu6789888 2010-07-05
vld 库试试,google 搜下vld
  • 打赏
  • 举报
回复
刚刚凉 2010-07-05
LeakDiag, UMDH这些微软的工具都可以诊断内存泄漏
如果是CE 上,要用Application verifier
  • 打赏
  • 举报
回复
发帖
VC/MFC

1.6w+

社区成员

VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
帖子事件
创建了帖子
2010-07-05 08:42
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……