C --> malloc --> dlsym

标签 c malloc dlsym

我使用 dlsym() 来调用我的 malloc 版本,而不是默认库 malloc:

 lt_malloc = (void*(*)(size_t))dlsym(RTLD_NEXT, "malloc");
 TRACE((stderr, "initialize: lt_malloc=%p\n", lt_malloc));
 if (!lt_malloc) {
     fprintf(stderr, "LeakTracer: could not resolve 'malloc' in 'libc.so': %s\n", dlerror());
     exit(1);
 }

现在过了一定时间,可能是计时器左右,我想恢复到原来版本的 malloc (libc 库 malloc)。我怎样才能做到这一点?

提前致谢。

最佳答案

上面代码的意思是 1)你的malloc也叫malloc吗? 2) 或者将 libc malloc 分配给 lt_malloc?

上面的代码表明 lt_malloc 是 libc malloc,因此是“原始”malloc。那么你可能有一些宏或函数

那么你就可以轻松切换 my_malloc = libc_malloc my_malloc = my_debug_malloc

你只需调用 my_malloc

如果这没有帮助,请解释发布的代码以及您对“ente codde here”的期望

关于C --> malloc --> dlsym,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5495578/

相关文章:

c - 指针 - 转换为结构指针 + Malloc

c - 将char指针写入文件,读取文件并检查大小?

c - 从 : malloc/free/malloc/free 的设计模式中获取与 malloc 相关的错误

c++ - 如何动态加载和调用具有库特定类型作为函数参数的符号

c - 比较文件中相邻行的更好算法

c - 这行代码有什么作用?

来自 n 个列表的组合,从给定索引的每个列表中选择一个元素,并寻求最快的组合排序

c++ - 这是将 struct sockaddr_in.sin_zero[8] 初始化为 0 的正确方法吗?

c - 从钩子(Hook)函数返回挂起

c - 使用 dlopen 访问 POSIX 函数