在OpenBSD中有哪些可用于c ++内存调试的选项?

时间:2011-08-18 14:25:50

标签: c++ debugging memory memory-leaks openbsd

我相信我在OpenBSD上的复杂c ++应用程序中有双重删除和某些内存损坏。我想跟踪删除对象的第一个位置,以及访问释放内存的所有点。

我通常会查看valgrind,但它只是linux。如果做不到这一点,我会使用某种跟踪代码检测我的新操作员和删除操作符,但我发现很难确定正确的谷歌搜索。

是否有任何openbsd包可以提供有关内存错误的信息?是否有任何一种标准方法可以重新定义new和delete以检测溢出,无效访问,双重释放?

2 个答案:

答案 0 :(得分:1)

这有很大帮助:

man malloc

可以在系统范围,环境范围或程序特定的情况下启用调试选项。

答案 1 :(得分:-1)

我不知道你是否愿意使用第三方工具,但C ++内存验证器非常好。

http://www.softwareverify.com/cpp-memory.php

它隔离了内存/句柄泄漏,告诉你泄漏了多少内存并显示代码中的位置。如果只有它可以为您修复泄漏:)30天免费试用也可用。

我用它来查找我的旧C ++ MFC应用程序中的泄漏,以前的开发人员似乎认为不需要重新调用内存!