c - 如何找到正确的 mtrace 脚本来解释 mtrace 输出?

标签 c linux mtrace

我正在使用 gnu mtrace 工具来检查 C 代码中的内存泄漏。这会生成一个难以阅读的文本文件(大概是所有动态内存操作的日志),该文件可以由也称为 mtrace 的 perl 脚本解释。

我试过使用 mtrace 脚本版本 2.15,但这似乎无法正常工作,报告相同的内存地址被释放但未分配已分配但未释放。 也许它与文本文件格式不匹配(文本文件没有版本号)。 我尝试了版本 2.5 和 2.7,由于过时的 perl 语法(运行 perl v5.10.1),它们似乎无法运行。

谁遇到过类似的问题并解决了?

最佳答案

我认为 mtrace 脚本 v2.15 没问题。 报告为已释放但未分配的内存地址在它们被重新使用之前被释放,,随后的分配半巧合地使用了相同的地址。事实上,它们最初是在我开始 mtrace 之前分配的。

关于c - 如何找到正确的 mtrace 脚本来解释 mtrace 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216840/

相关文章:

linux - Windows 和 Linux 共存于 Kubernetes 集群中

c - fortran 程序的 mtrace

c - 为数组中的行赋值 - C 编程

linux - 在bash中将字符串拆分为数组

c++ - 访问多个 I2C 设备

c++ - g++ -static 导致内存泄漏(mtrace 报告)

c - 使用 2D 矩阵的 MPI_Sendrecv 问题

c - 友好数字函数给出了错误的结果

c - 数组输入太大