0

我需要调试一个包含 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 没有显示任何调试错误、警告,我想不出任何理由。

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

4

3 回答 3

4

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

于 2012-06-10T13:03:03.210 回答
3

gdb不太舒服,但总是可用。

要对不同类型进行运行时分析,尤其是检查内存访问,Valgrind请参阅此处的文档)可能是首选工具。

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

于 2012-06-10T12:56:31.373 回答
2

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

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

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

于 2012-06-10T13:06:31.213 回答