在我们公司,我们有一个类似于 glibc 中的mtrace (MALLOC_TRACE) 功能的内部框架,用于检测内存泄漏。该框架是为在 Windows 上运行而编写的,但在 GNU/Linux 中运行不佳。
那么,有谁知道可以在 Windows、GNU/Linux 甚至 MacOSX 上运行的可移植的 mtrace (MALLOC_TRACE) 等价物?
几个月前,我开发了一个可移植 C 库的基础,允许某种 OOP。
内存通过引用计数进行管理,并且该项目包括一个内存调试器,用于跟踪所有分配,并在必要时提供扩展的调试信息。
它是在 BOOST 许可下发布的,因此您可以自由使用它。
https://github.com/macmade/XSFoundation/
当前版本实际上处于无法使用的状态,但您可以检查旧版本,看看它是如何完成的。
标签中提供了工作版本(1.2.2-0)。这个在 OSX、Windows 和 Linux 上构建良好。
内存的东西主要位于source/core
目录中:
例如,以下是 SegmentationFault 的输出类型:
然后,您可以获得回溯信息、显示分配等。