轮询系统调用超时

时间:2012-10-22 20:06:36

标签: linux system-calls strace

附加strace会显示很多这些消息:

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)

poll([{fd=5, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}], 6, 0) = 0 (Timeout)

如何找到程序尝试访问的文件导致poll系统调用超时?

strace会生成大量消息,使其难以调试

2 个答案:

答案 0 :(得分:21)

  

如何找到程序尝试访问的文件导致轮询系统调用超时?

调用:

lsof -p <pid>

看看有问题的文件描述符是什么。

您还可以查看Linux上的proc文件系统:

ls -l /proc/<pid>/fd

答案 1 :(得分:0)

ls -l / proc // fd /->您将获得相应的节点ID。 ss -p | grep->您将获得fd所属的套接字文件路径。