gpt4 book ai didi

c - 实现跟踪 C 内存错误的工具,找到从哪里调用我覆盖的 malloc 等

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:29:46 25 4
gpt4 key购买 nike

我被要求实现一个工具(用于 linux),它有助于 C/C++ 程序的内存管理。主要目标是追踪内存泄漏,但我也在检查 memcpy 的重叠参数等。

我实际上需要我的版本来拦截对这些函数的所有调用(例如来自其他库),所以我实际上需要覆盖它们。所以我不能使用所有帖子中建议的#define 技巧。我的问题是如何找到原始源文件名、调用函数和行号。

到目前为止,我唯一的想法是使用调试信息编译程序并开始挖掘目标文件(ELF,因为我使用的是 linux)。我从来没有玩过目标文件,我只知道汇编语言的基础知识,所以这似乎是一项非常繁重的任务。

有没有其他更简单的方法来实现这个目标?如果不是任何从事过类似工作的人都可以帮助我开始:)?。

谢谢

最佳答案

因为你在 Linux 上,你可以使用 glibc 的 malloc hook support.该页面上还提供了一个工作示例。

关于c - 实现跟踪 C 内存错误的工具,找到从哪里调用我覆盖的 malloc 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4922602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com