【问题标题】:can anyone suggest a good program for debugging a C program?谁能推荐一个调试 C 程序的好程序?
【发布时间】:2012-06-10 21:15:02
【问题描述】:

我需要调试一个包含 posix 线程、套接字编程(udp 客户端、服务器)的 C 程序。我使用 ubuntu 12.04 和 IDE/SDK、Qt Creator 2.4.1 和 Netbeans IDE 7.1.2。我知道他们使用 gdb 进行调试。

当我开始调试我的程序时,程序在 5 分钟左右后停止运行,并且 Qt Creator 或 Netbeans 都没有输出任何错误或警告,尽管我使用调试功能并且我的程序假设侦听 UDP 端口。

我对我的所有代码行都使用了 printf,我可以看到我的程序按预期工作,并监听 UDP 端口并等待。我无法弄清楚为什么它会无缘无故地停止,而且由于我使用的 IDE 没有显示任何调试错误、警告,我想不出任何理由。

我想知道是否有人可以建议我一个在运行时监视所有/某些变量和线程的调试程序。谢谢。

【问题讨论】:

    标签: c debugging


    【解决方案1】:

    一个古老但可靠的工具是ddd,它基本上是gdb GUI 包装器。虽然,我通常直接使用 Emacs 进行调试,但 ddd 是您可以在几乎所有 *nix 平台上运行的工具。

    【讨论】:

      【解决方案2】:

      gdb 不太舒服,但随时可用。

      要对不同类型进行运行时分析,尤其是检查内存访问,Valgrind (see here for docs) 可能是首选工具。

      更新:我指的是 *IX 系统。对于 Windows,gbd 也适用于 cygwin 环境。 Nativly 有 VC Express,它是免费的,包括 IDE 和调试器。

      【讨论】:

        【解决方案3】:

        我不太确定您的应用程序使用什么调试器。我在 Linux 上知道的唯一调试器是 gdb。它连同 printf 语句就是我所需要的。

        gdb 很简单,虽然不像@alk 所说的“太舒服”,但似乎无处不在。

        还有 Eclipse,它也是一个不错的开发和调试平台。

        【讨论】:

        • 不知道。我认为它是一个很好的工作环境,有点像 Linux 的 Visual Studio。
        猜你喜欢
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        相关资源
        最近更新 更多