使用GDB检查我的程序被卡住的地方

使用GDB检查我的程序被卡住的地方,gdb,Gdb,有人能告诉我如何检查我的程序最后一次卡住的地方吗。它可以通过gdb或任何可能在该进程上工作的UNIX系统调用来完成。情况是这样的 我有一个TCP客户机-服务器代码,包含6个客户机和6个服务器进程。(有一个客户机和一个服务器程序,每个程序有6个副本,在实验中运行) 发生的情况是,一些客户机(2-4)以不确定的方式陷入困境。我们在每个客户机中都有一个顺序“for”循环,它一次随机与一个服务器通信。但是经过一些迭代之后,在循环结束时,客户机被卡住了。我已经放置了显示,但它告诉我,代码只是拒绝进入下一个

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

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

干杯。。。
Raman

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