13

附件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生成大量消息,使其难以调试

4

2 回答 2

26

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

调用:

lsof -p <pid>

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

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

ls -l /proc/<pid>/fd
于 2012-10-22T20:59:56.577 回答
0

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

于 2018-11-17T15:25:47.007 回答