大家遇到Memory Leak后怎么定位错误? 想请各位发表一下意见

WesleyWu 2002-07-16 02:49:03
我指的是编译器报告Memory Leak后 Dump出一大堆的地址,到底如何快速的确定这些地址是哪些变量呢?

我可不想用step by step debug.
...全文
99 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
gauss 2002-07-17
  • 打赏
  • 举报
回复
MSDN 里面有这个Technical Article

Detecting and Isolating Memory Leaks Using Microsoft Visual C++

就是说这个的了。
WesleyWu 2002-07-17
  • 打赏
  • 举报
回复
Let me try.
ttzzgg_80713 2002-07-16
  • 打赏
  • 举报
回复
可以的,在调试程序结束后,会提示内存泄漏,在那里双击。
Muf 2002-07-16
  • 打赏
  • 举报
回复
实际上,堆分配的内存出现MemoryLeak,有许多工具可以找到,而且通过某些手段,如增加log等,可以相对容易找到。
但是,使用COM对象比其它东西更容易产生MemoryLeak,而且很难排除。
新版的VC++可以控制跟踪log,以跟踪iunknow接口的三个方法调用,以便找到没释放的接口。

要解决MemoryLeak,最好的方法是所有的指针都使用相对应的智能指针,这样可以在设计阶段就避免掉大多数的MemoryLeak。(虽然不是所有情况都可以用智能指针,能用就尽量用吧。)
flasty 2002-07-16
  • 打赏
  • 举报
回复
双击可以吧!?
taianmonkey 2002-07-16
  • 打赏
  • 举报
回复
看看是否有:
1.NEW的东西是否没有在~function()delete;
2.有的对象在用完了有没有delete;
3.有的成员在用完了有没有delete;
总之,很麻烦的!
有的需要经验!
WesleyWu 2002-07-16
  • 打赏
  • 举报
回复
wei_gogo, 这个方法效率太低了吧:)

ttzzgg,我说的是Memory Leak, 并不是程序编译错误。Memory Leak的信息上双击是不行的吧。:)
ttzzgg_80713 2002-07-16
  • 打赏
  • 举报
回复
一般的情况下,在报错的位置双击就可以找到了。
wei_gogo 2002-07-16
  • 打赏
  • 举报
回复
自己用f9设置断点,f10来一步一步调试
nuaawyd 2002-07-16
  • 打赏
  • 举报
回复
你可以用boundcheck软件试试,在e.pku.edu.cn上搜索一下,现在大概是6.5版本,很不错

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧