免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: incle
打印 上一主题 下一主题

内存泄露检测的一个怪问题(采用memwatch) [复制链接]

论坛徽章:
24
15-16赛季CBA联赛之北京
日期:2018-08-17 18:43:33技术图书徽章
日期:2018-08-22 12:53:57技术图书徽章
日期:2018-08-22 12:54:20技术图书徽章
日期:2018-08-22 12:54:3015-16赛季CBA联赛之福建
日期:2018-10-19 16:58:1619周年集字徽章-庆
日期:2019-08-27 13:28:5619周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-19
日期:2019-08-27 13:31:2615-16赛季CBA联赛之同曦
日期:2019-09-05 12:03:2819周年集字徽章-周
日期:2019-09-06 18:54:5415-16赛季CBA联赛之上海
日期:2018-07-25 11:55:2615-16赛季CBA联赛之青岛
日期:2018-07-10 14:13:18
11 [报告]
发表于 2007-09-28 16:46 |只看该作者
(前面所提到的两个小测试文件的问题已经解决, 关键是在每个文件里都加上 memwatch.h) 但是还有一个问题,在我的工程中我所要测试的代码文件里已经加上了 memwatch.h 然而依然没能检测得出来,在调试时发现
到 有malloc的地方并没有得到替换,(或都说宏没有及时展开). 这样 memwatch自然检测不到我代码的内存操作情况.

然而为什么会这样?为什么宏没有(替换)展开呢?
是什么情况使它失效呢?

[ 本帖最后由 incle 于 2007-9-28 17:42 编辑 ]

论坛徽章:
0
12 [报告]
发表于 2007-09-28 17:12 |只看该作者
.h 在你编译之前.以编译以编译好了.当然.不知道内存泄漏.

论坛徽章:
24
15-16赛季CBA联赛之北京
日期:2018-08-17 18:43:33技术图书徽章
日期:2018-08-22 12:53:57技术图书徽章
日期:2018-08-22 12:54:20技术图书徽章
日期:2018-08-22 12:54:3015-16赛季CBA联赛之福建
日期:2018-10-19 16:58:1619周年集字徽章-庆
日期:2019-08-27 13:28:5619周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-19
日期:2019-08-27 13:31:2615-16赛季CBA联赛之同曦
日期:2019-09-05 12:03:2819周年集字徽章-周
日期:2019-09-06 18:54:5415-16赛季CBA联赛之上海
日期:2018-07-25 11:55:2615-16赛季CBA联赛之青岛
日期:2018-07-10 14:13:18
13 [报告]
发表于 2007-09-28 17:37 |只看该作者
原帖由 依赛特小子 于 2007-9-28 17:12 发表
.h 在你编译之前.以编译以编译好了.当然.不知道内存泄漏.


我不是很明白你的意思, 但是有一点,我加了头文件了之后,我一切文件都已经重新进行编译了的.

论坛徽章:
0
14 [报告]
发表于 2007-09-28 19:36 |只看该作者
推荐一个工具:
valgrind

   http://www.valgrind.org/docs/manual/index.html

论坛徽章:
0
15 [报告]
发表于 2007-09-28 20:19 |只看该作者
#include "incle.h"
#include "memwatch.h"
把这两句掉一下:
#include "memwatch.h"
#include "incle.h"
并且把incle.h中的#include去掉试试。

论坛徽章:
24
15-16赛季CBA联赛之北京
日期:2018-08-17 18:43:33技术图书徽章
日期:2018-08-22 12:53:57技术图书徽章
日期:2018-08-22 12:54:20技术图书徽章
日期:2018-08-22 12:54:3015-16赛季CBA联赛之福建
日期:2018-10-19 16:58:1619周年集字徽章-庆
日期:2019-08-27 13:28:5619周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-19
日期:2019-08-27 13:31:2615-16赛季CBA联赛之同曦
日期:2019-09-05 12:03:2819周年集字徽章-周
日期:2019-09-06 18:54:5415-16赛季CBA联赛之上海
日期:2018-07-25 11:55:2615-16赛季CBA联赛之青岛
日期:2018-07-10 14:13:18
16 [报告]
发表于 2007-09-29 13:43 |只看该作者
原帖由 lanying_wzw 于 2007-9-28 20:19 发表
#include "incle.h"
#include "memwatch.h"
把这两句掉一下:
#include "memwatch.h"
#include "incle.h"
并且把incle.h中的#include去掉试试。

这个问题已经解决,但是又碰到新的问题了, 请看11楼那儿的描述.

论坛徽章:
24
15-16赛季CBA联赛之北京
日期:2018-08-17 18:43:33技术图书徽章
日期:2018-08-22 12:53:57技术图书徽章
日期:2018-08-22 12:54:20技术图书徽章
日期:2018-08-22 12:54:3015-16赛季CBA联赛之福建
日期:2018-10-19 16:58:1619周年集字徽章-庆
日期:2019-08-27 13:28:5619周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-19
日期:2019-08-27 13:31:2615-16赛季CBA联赛之同曦
日期:2019-09-05 12:03:2819周年集字徽章-周
日期:2019-09-06 18:54:5415-16赛季CBA联赛之上海
日期:2018-07-25 11:55:2615-16赛季CBA联赛之青岛
日期:2018-07-10 14:13:18
17 [报告]
发表于 2007-09-29 13:46 |只看该作者
原帖由 hmilymb 于 2007-9-28 19:36 发表
推荐一个工具:
valgrind

   http://www.valgrind.org/docs/manual/index.html

谢谢,这个工具我用了,是可以,但是我的工作是把是一定要用memwatch的.

论坛徽章:
0
18 [报告]
发表于 2007-09-29 15:17 |只看该作者
#include "memwatch.h"要在最后加

论坛徽章:
24
15-16赛季CBA联赛之北京
日期:2018-08-17 18:43:33技术图书徽章
日期:2018-08-22 12:53:57技术图书徽章
日期:2018-08-22 12:54:20技术图书徽章
日期:2018-08-22 12:54:3015-16赛季CBA联赛之福建
日期:2018-10-19 16:58:1619周年集字徽章-庆
日期:2019-08-27 13:28:5619周年集字徽章-19
日期:2019-08-27 13:31:2619周年集字徽章-19
日期:2019-08-27 13:31:2615-16赛季CBA联赛之同曦
日期:2019-09-05 12:03:2819周年集字徽章-周
日期:2019-09-06 18:54:5415-16赛季CBA联赛之上海
日期:2018-07-25 11:55:2615-16赛季CBA联赛之青岛
日期:2018-07-10 14:13:18
19 [报告]
发表于 2007-10-12 16:06 |只看该作者
太高兴了,终于解决问题了.
问题在于我编译方法上. 开始时我把包含了memwatch.h的.c
编译成 .a 后才调用里面的函数, 与 memwath.c 一起编译, 结果
memwath的宏没有展开.导致了测不到我程序的内存泄露.

现在只要把相关的.c在链接在一起, 同时编译成一个程序. 这样就可以成功的
检测到内存泄露了.

[ 本帖最后由 incle 于 2007-10-12 16:13 编辑 ]

论坛徽章:
0
20 [报告]
发表于 2011-06-09 17:18 |只看该作者
mwFini是什么函数?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP