我需要调试一个包含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没有显示任何调试错误,警告,我想不出任何理由。
我想知道是否有人可以建议我在运行时监视所有/某些变量和线程的调试程序。谢谢。
答案 0 :(得分:4)
旧的但可靠的工具是ddd,它基本上是gdb GUI包装器。虽然,我通常直接使用Emacs进行调试,但ddd是几乎可以在所有* nix平台上运行的工具。
答案 1 :(得分:3)
gdb
不太舒服,但始终可用。
要对不同类型进行运行时分析,尤其是检查内存访问,Valgrind
(see here for docs)可能是首选工具。
更新:我指的是* IX系统。对于Windows gbd
,也适用于cygwin
环境。其中有VC Express,它是免费的,包括IDE和调试器。
答案 2 :(得分:2)
我不太确定您的应用程序使用了什么调试器。我在Linux上唯一知道的调试器是gdb。它与printf语句一起是我所需要的。
gdb很简单,虽然不像@alk所说的那样“太舒服”,但似乎无处不在。还有Eclipse,这也是一个非常好的开发和调试平台。