[英]How to find more information about the file descriptor?
我正在尝试调试一个挂起的进程,进程 id 的 strace 输出有最后一行:
recvfrom(9, <detached ...><\/code>从这里我了解到该进程正在套接字上等待。
但我不知道这是哪个或什么样的插座。 我怎样才能发现更多关于此的信息? 文件描述符 9 会给我更多信息吗? 我如何使用这个文件发现来了解更多关于它在等待什么?
它是一个python进程,在linux中运行。
由于您使用的是
strace<\/code> ,因此我假设您使用的是 Linux 并且您知道进程 ID。
在这种情况下,您可以在
\/proc<\/code>中找到很多信息。
这是一个如何做的例子。
执行
ls -l \/proc\/<pid>\/fd<\/code> 。
将有一个对应于您感兴趣的 fd 的条目,并且 fd 应该是这样的套接字:
$ ls -l /proc/3311/fd
total 0
lrwx------ 1 alanau alanau 64 Sep 24 20:37 0 -> /dev/pts/0
lrwx------ 1 alanau alanau 64 Sep 24 20:37 1 -> /dev/pts/0
lrwx------ 1 alanau alanau 64 Sep 24 20:37 2 -> /dev/pts/0
lrwx------ 1 alanau alanau 64 Sep 24 20:37 3 -> socket:[23182]
在strace<\/code>输出中查看文件描述符何时从
open()<\/code> (或者可能是
socket()<\/code> )返回时,您将看到调用中使用的其他参数。
"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.