gpt4 book ai didi

c++ - G++ 多平台内存泄漏检测工具

转载 作者:可可西里 更新时间:2023-11-01 15:11:16 27 4
gpt4 key购买 nike

有谁知道我在哪里可以找到适用于 C++ 的内存泄漏检测工具,它既可以在命令行中运行,也可以作为 Windows 和 Linux 中的 Eclipse 插件运行。我希望它易于使用。最好是不覆盖 new()、delete()、malloc() 或 free() 的方法。如果它会在命令行中,则类似于 GDB,但我不记得它用于检测内存泄漏。如果有一个单元测试框架可以自动执行此操作,那就太好了。

这个问题类似于其他问题(例如 Memory leak detection under Windows for GNU C/C++ ),但我觉得它是不同的,因为那些要求特定于 Windows 的解决方案或有我宁愿避免的解决方案。我觉得我正在寻找更具体的东西。建议不必满足所有要求,但越多越好。

谢谢。

编辑:既然出现了这个问题,我所说的“覆盖”是指任何需要我#include 一个库或以其他方式改变 C++ 编译我的代码的方式,如果它在运行时这样做,以便在一个不同的环境不会影响任何会很棒的东西。另外,不幸的是,我没有 Mac,所以对此的任何建议都无济于事,但感谢您的尝试。我的桌面运行 Windows(我安装了 Linux,但我的双显示器无法使用它),我宁愿不在 VM 中运行 Linux,尽管这当然是一个选项。我的笔记本电脑运行 Linux,所以我可以在那里使用该工具,尽管我肯定更喜欢坚持使用桌面,因为屏幕空间非常适合查看所有设计文档和要求,而无需在桌面上移动太多.

注意:虽然我可能会尝试答案,但在我尝试了建议并且令人满意之前,我不会将其中一个标记为已接受。

EDIT2:我不担心我的代码的跨平台兼容性,它是一个仅使用 C++ 库的命令行应用程序。

最佳答案

Valgrind是你的best friend . Valgrind 有一个 plugin对于 eclipse 。“遗憾的是”Valgrind 不能在 Windows 上运行,但它可以在 Mac OSX、*BSD 和 Linux 上运行,所以我认为它是“多平台”。 :)

Valgrind 确实“覆盖”了 new/delete/malloc/free 但不是在编译期间(所以如果这就是你的意思,你不必重新编译)。它解释二进制文件,因此在测试期间性能会受到一些影响。

关于c++ - G++ 多平台内存泄漏检测工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1052145/

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