【问题标题】:debugging with dbx an checking memory leaks with rtcaudit.so使用 dbx 调试并使用 rtcaudit.so 检查内存泄漏
【发布时间】:2011-07-18 04:30:07
【问题描述】:

我看到this页面,发现我们可以使用dbx检查程序的内存泄漏。 我实际上从来没有这样做过,但这似乎是检查内存泄漏的好代价。

我以前在没有 GUI 的 HPUX 和 IBM AIX UNIX 操作系统上工作,并且总是在命令行上工作。 rtcaudit.so 库(用于运行时检查)由 Sun 提供。 这是否意味着这个库只能在 sun solaris 上使用?

你可能会告诉我为什么我不能自己尝试。但这里的问题是我目前不是在 unix 上工作,而是在 windows 上工作。我只是想知道我们是否可以在 HPUX 或 IBM AIX 中使用相同的东西。

有人知道吗?如果你知道,请分享一下

【问题讨论】:

    标签: c debugging memory-leaks dbx


    【解决方案1】:
    • rtcaudit.soOracle Solaris Studio(以前称为 Sun Studio)的一部分。尽管有这个名字,它也可以在 Linux x86 上运行。因此,如果你有一个 Linux 机器,并且有一段时间你可能想在那里尝试一下。 (在这种情况下,您可能想先尝试 Valgrind,请参阅 Scotts 的回答。)

    • 对于 HP,有 Wildebeest Debugger (WDB)(修改后的 gdb)。 WDB 有自己的扩展来查找内存泄漏。虽然这些与 Suns dbx 不同,但您仍可能想尝试一下。

    • 如果您使用的是 Visual Studio,它确实提供了一些查找内存泄漏的支持。请参阅 MSDN 上的 Memory Leak Detection and Isolation

    • 有一些免费的库可以捕获此类错误。对于 Windows,例如:DUMAElectric FenceVisual Leak Detector。 (无法发布链接,因为我没有足够的声望点。)

    PS:如果我遇到这样的问题,我首先尝试的是 Valgrind(参见 Scotts 的回答)。它不需要任何交互,而只是吐出许多有用的信息。虽然它不是一个完整的调试器,但很多时候它提供了足够的提示来修复错误。强烈推荐!但不能在 Windows 上运行。

    您可能想看看这个question、这个question 和这个question 在stackoverflow.com。

    【讨论】:

      【解决方案2】:

      一个开源替代方案是Valgrind。这不仅可以检测内存泄漏,还可以检测其他类型的内存错误和一堆我从未使用过的其他东西。它目前只能在 Linux、MacOS、FreeBSD 和 NetBSD 上运行,但如果您的程序不依赖于平台,那么您可以在一个平台上进行开发和调试,然后再在目标平台上运行它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-21
        • 1970-01-01
        • 2010-12-01
        • 2011-06-22
        • 2011-03-28
        相关资源
        最近更新 更多