Chinaunix

标题: 替换malloc [打印本页]

作者: suncrash    时间: 2005-12-27 12:05
标题: 替换malloc
这个问题在hp-unix版发了,但是没有人明白,可能发到这里更合适些
为了检查内存泄露问题,我下载了一个malloc的代码,我如何在不改动代码的情况下,让编译器使用我的函数,而不使用stdlib.h里面的函数
我的系统是hp11
作者: aero    时间: 2005-12-27 12:21
然后呢?说完啊。
作者: suncrash    时间: 2005-12-27 12:43
标题: 回复 2楼 aero 的帖子
然后就是自己在新的malloc代码里面计数器阿,一运行就知道了
作者: aero    时间: 2005-12-27 12:47
where is your code?
作者: albcamus    时间: 2005-12-27 13:48
如果是gcc,如果非这么干不可的话,如果非让我这么干的话,我会用-rpath选项,指定自己的一个库,里边实现自己的malloc和free。

听说dmalloc可以检查内存泄漏,没用过。
作者: cobras    时间: 2005-12-27 15:58
LZ,为什么要替换呢,用另外一个名字不行吗?如果非要有同一个名字,就用宏吧
作者: ktdid    时间: 2005-12-27 16:05
直接把你的malloc/free源文件或者库文件包含进项目一起make即可
linker只有在给定的obj文件不能解决外部引用的时候才会去标准库里找
作者: 依赛特小子    时间: 2005-12-27 16:18
new 好!可以运算符重载!
作者: gooderfeng    时间: 2005-12-27 16:30
不一定叫malloc,换个名字,省很多力气
作者: 给个理由先    时间: 2005-12-27 16:42
自己提前定义malloc函数的宏标志,就不会包函系统的malloc了!!
作者: suncrash    时间: 2005-12-29 12:13
原帖由 cobras 于 2005-12-27 15:58 发表
LZ,为什么要替换呢,用另外一个名字不行吗?如果非要有同一个名字,就用宏吧


因为代码量不小,可能有一万行左右,很多地方使用了malloc,一个一个替换非常麻烦,而且有很多公用的模块,改动容易造成版本问题,所以我就想不改动代码
作者: cobras    时间: 2005-12-29 12:22
那宏不就解决了吗?

将下面的宏定义加入公共头文件中
#define malloc u_malloc
作者: Alligator27    时间: 2005-12-29 22:03
LD_PRELOAD=libmymalloc.so




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2