谁见过这样的内存泄露,紧急求助。非作业贴

DontKissBossAss 2010-09-25 08:02:28
写的程序用新发现的boundchecker 检测了一下,提示如下泄露
Memory leak: 40bytes allocated by operator_new in locale0.cpp(55)
Memory leak:33bytes allocated by operator_new in .\xmemory(30), HANDLE *******
Memory Leak: 176bytes allocated by _malloc_dbg in onexit.c(521)

这是怎么回事啊。交作业时候,老师居然因为这个把程序打回了。

这样的问题,怎么检查呢?你们平时都用什么检测内存泄露啊
...全文
300 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我承认我大学里的作业都是抄的
whgale 2010-09-27
  • 打赏
  • 举报
回复
自己一行代码一行代码检查,查找每个new是否delete。并且在异常,中断,结束等等都不会产生遗漏。
xiaohuh421 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 dontkissbossass 的回复:]
写的程序用新发现的boundchecker 检测了一下,提示如下泄露
Memory leak: 40bytes allocated by operator_new in locale0.cpp(55)
Memory leak:33bytes allocated by operator_new in .\xmemory(30), HANDLE *******
Memory Leak: 176bytes allocated by _malloc_dbg in onexit.c(521)
[/Quote]
已经给你标明是new和malloc分配的内存没有释放,那在代码中直接查找new和malloc不就找到在哪里了.

如果你想看自己的程序有没有内存泄漏,你可以用一个工具"DebugView".如果你的程序有内存泄漏,在关闭程序的时候会在DbgView里面显示出来
oo 2010-09-27
  • 打赏
  • 举报
回复
也许你调用了CString的某些成员函数,在这个函数里申请的内存需要你释放
比如CString::AllocSysString

4000行的代码还是比较好查的

DontKissBossAss 2010-09-27
  • 打赏
  • 举报
回复
Detected memory leaks!
Dumping objects ->
strcore.cpp(118) : {520} normal block at 0x0038A690, 61 bytes long.
Data: < 0 0 E:\B> 01 00 00 00 30 00 00 00 30 00 00 00 45 3A 5C 42
{450} normal block at 0x00389160, 512 bytes long.
Data: < > FE FF FF FF FF FF FF FF 01 00 00 00 03 00 00 00
{354} normal block at 0x00388D20, 32 bytes long.
Data: < > F8 FF FF FF FB FF FF FF F9 FF FF FF FA FF FF FF
{336} normal block at 0x00388C60, 24 bytes long.
Data: < 18 8 18 ] > 00 31 38 00 A0 8B 38 00 00 31 38 00 5D 00 00 00
strcore.cpp(118) : {335} normal block at 0x00388CC8, 28 bytes long.
Data: < > 01 00 00 00 0F 00 00 00 0F 00 00 00 D3 C3 BB A7
{333} normal block at 0x00388BA0, 24 bytes long.
Data: < 18 8 ` 8 \ > 00 31 38 00 D0 8A 38 00 60 8C 38 00 5C 00 00 00
strcore.cpp(118) : {332} normal block at 0x00388C08, 28 bytes long.
Data: < > 01 00 00 00 0F 00 00 00 0F 00 00 00 D3 C3 BB A7
{330} normal block at 0x00388AD0, 24 bytes long.


我这个是操作系统结束后作业题。线程。和windows的一些操作。
用的MFC, 结果告诉我,strcore 的 allocbuffer
问题是
1:我都是栈上声明个CString, 没有static问题
2: 更不会new CString
,哪为啥,还有这个问题呢?难道是CString的析构没有调用?
手机写程序 2010-09-26
  • 打赏
  • 举报
回复
Memory leak: 40bytes allocated by operator_new in locale0.cpp(55)
Memory leak:33bytes allocated by operator_new in .\xmemory(30), HANDLE *******
Memory Leak: 176bytes allocated by _malloc_dbg in onexit.c(521)

boundchecker是不是已经告诉你在locale0.cpp的55行分配的内存没释放?
zotin 2010-09-26
  • 打赏
  • 举报
回复
从错误信息上看,就是new了没释放。用不着多强的工具。
下面这篇文章讲的办法应该可以检测出来:
http://blog.csdn.net/zxcred/archive/2008/11/05/3228239.aspx
gules 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 namelij 的回复:]
...
4000行叫多?
我之前找OpenOffice源码,800万行...
[/Quote]
呵呵,你对人家要求也太高了!老实说,4000行代码的作业很不错了!
yshuise 2010-09-26
  • 打赏
  • 举报
回复
往上层看,又不是这儿泄漏。
jxjszh 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 namelij 的回复:]

话说内存泄露 从C/C++有史以来 就是其难点,这个主要还是靠自己的编程经验

一个原则:谁申请,谁释放

我用的是UMDH,感觉还比较好用,适合大型项目
[/Quote]
3楼说的有道理
Q446512799 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 iambic 的回复:]
4000行代码很多了,不知道啥作业写了这么多行代码。
[/Quote]
我是没见过这作业0_0
  • 打赏
  • 举报
回复
下载并安装Debugging Tools for Windows
UMDH就在安装目录里面

具体怎么使用,看里面的说明文档
DontKissBossAss 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 namelij 的回复:]

用UMDH看吧
把你可能的泄露点都会罗列出来

话说 现在定位泄露最准的还是IBM自己的 IBM Rational PurifyPlus,准确率达32%左右,其他的基本在25%左右
[/Quote]

能给个链接么?下载了UMDH,但是他的依赖我都找不见,就下载一个symbols、还全是pdg文件。
赵4老师 2010-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 namelij 的回复:]
话说内存泄露 从C/C++有史以来 就是其难点,这个主要还是靠自己的编程经验

一个原则:谁申请,谁释放

我用的是UMDH,感觉还比较好用,适合大型项目
[/Quote]
虎头蛇尾是俗人的习惯,
有始有终是君子的操守。
ericming200409 2010-09-25
  • 打赏
  • 举报
回复
脑子进水了是不是,代码不贴出来,谁知道哪里泄露了
iambic 2010-09-25
  • 打赏
  • 举报
回复
另外根据这种工具把学生作业打回去,我觉得这老师有点不负责任。
iambic 2010-09-25
  • 打赏
  • 举报
回复
4000行代码很多了,不知道啥作业写了这么多行代码。
小驴 2010-09-25
  • 打赏
  • 举报
回复
你俩慢聊,我打酱油的...........
  • 打赏
  • 举报
回复
用UMDH看吧
把你可能的泄露点都会罗列出来

话说 现在定位泄露最准的还是IBM自己的 IBM Rational PurifyPlus,准确率达32%左右,其他的基本在25%左右
DontKissBossAss 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 namelij 的回复:]
...
4000行叫多?
我之前找OpenOffice源码,800万行...
[/Quote]

我是菜鸟。。。学生作品,话说,我们班写出来的,好像不超过俩人。。。
加载更多回复(7)

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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