【发布时间】:2018-02-01 18:59:28
【问题描述】:
我尝试编写一个函数 malloc()。我的档案:
void *malloc(size_t size)
{
printf("test");
}
我在共享库.so 上编译这个文件。 现在,我想使用 LD_PRELOAD 来使用我的 malloc 函数:
export LD_PRELOAD=MY_LIB
我用这个库编译我的 main.c:
int main()
{
malloc(5);
return (0);
}
但是当我运行可执行文件时,我遇到了分段错误 ..(如果我执行 ls、cat 或其他命令也一样
有什么问题? 谢谢你!
【问题讨论】:
-
我的猜测是
printf在内部调用malloc。 -
您的函数的返回类型是
void *,但您似乎没有返回任何内容。 -
你试过在调试器中运行它吗?
标签: c ld-preload