使用GDB检查我的程序卡在哪里

时间:2011-03-31 17:06:06

标签: gdb

有人可以告诉我如何检查我的程序卡住的最后一个地方。可以使用gdb或任何可能在该进程上工作的UNIX系统调用来完成。这是情况。

我有一个TCP客户端服务器代码,包含6个客户端和6个服务器进程。(有一个客户端和一个服务器程序,每个都有6个副本在实验中运行) 发生的事情是一些客户(2-4)以非确定性方式陷入困境。我们在每个客户端都有一个顺序的“for”循环,它一次与一个服务器随机通信。但经过一些迭代后,在循环结束时客户端卡住了。我已经放了显示但是它告诉我代码只是拒绝进入下一次迭代的开始,尽管它已经完成了上一次迭代。当我执行'top -p'时,此客户端显示100%的CPU使用率,并且它永远保持不变。大约98%的使用率是空闲的。任何人都对此有任何想法:)

...欢呼声 拉曼

1 个答案:

答案 0 :(得分:0)

您可以使用strace查看程序执行的所有系统调用的实时流。如果您的程序挂起系统调用,您将看到哪一个是罪魁祸首。