首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否可以替代valgrind (memcheck)来查找linux上的漏洞?

是否可以替代valgrind (memcheck)来查找linux上的漏洞?
EN

Stack Overflow用户
提问于 2011-09-14 08:56:12
回答 3查看 18.9K关注 0票数 18

我有一个使用各种第三方共享对象库的linux x86应用程序。我怀疑这些库正在泄漏内存(因为它不可能是我的代码;-)

我尝试了值得信赖的valgrind,但它死得很可怕,因为one of the third-party libraries is using an obscure x86 instruction valgrind doesn't implement

我找到了a recommendation for DUMA并尝试了一下(使用LD_PRELOAD技术在运行时引入了DUMA ),但它中止了,因为它抱怨内存上的一个空闲操作不是通过DUMA分配的(几乎可以肯定是由前面提到的第三方库中的某个静态对象的构造函数)。

是否有其他运行时可链接(或者不需要重新编译/重新链接)的工具可以在linux上运行?

EN

回答 3

Stack Overflow用户

发布于 2012-05-12 10:28:48

试一试Dr. Memory。它基于DynamoRIO,并与Valgrind共享许多功能。

票数 5
EN

Stack Overflow用户

发布于 2020-09-28 15:40:19

在2020年,要查找Linux上的内存泄漏,您可以尝试:

对于GCC(4.8以上)和Clang (3.1以上),都可以使用地址消毒器,很棒这个工具已经在Chromium和Firefox等大型项目中被证明是有用的。

ASan将提供非常详细的内存区域信息,这对分析泄漏非常有帮助。

ASan的缺点:您需要使用选项-fsanitize=address来构建程序

TCmalloc既可以与LD_PRELOAD一起使用,也可以直接链接到您的程序。结果可以用pprof程序可视化,它具有漂亮的web UI和控制台文本模式,如果address sanitizer在您的环境中不适用,我建议使用它(如果您有一个非常旧的编译器或您的PC运行ASan的内存非常有限)。

票数 3
EN

Stack Overflow用户

发布于 2017-04-10 22:03:56

Heapusage是一个简单的运行时工具,用于查找Linux和macOS上的内存泄漏。泄漏的输出日志格式非常类似于Valgrind,但它只记录明确的泄漏(即在终止时不释放分配)。

完全公开:我写的Heapusage是为了在Valgrind不够用的情况下使用(高性能应用程序,以及Valgrind不支持的CPU架构)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7410160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档