跟踪套接字(文件)描述符返回绑定地址

本文关键字:返回 绑定 地址 描述 套接字 文件 跟踪 | 更新日期: 2023-09-27 18:06:31

我有一个正在运行的应用程序(c#/mono),它似乎在以下系统调用上循环:(我通过strace的运行确定了这一点,并发现这个调用是当前唯一正在进行的)

recvfrom([sockfd], "", [length], 0, NULL, NULL)   = 0

阅读recvfrom (http://linux.die.net/man/2/recvfrom),我发现第一个参数sockfd代表套接字文件描述符。

如果不停止应用程序并包括调试逻辑/额外的冗长,让我知道sockfd已绑定到哪个套接字地址,是否有任何方法来查找这个?

我已经试着四处寻找这些信息可以从系统中获得的任何参考资料,但没有提出太多

提前致谢

跟踪套接字(文件)描述符返回绑定地址

您可以使用lsof命令列出程序所做的所有打开的IP套接字

lsof | grep pid.*sd.*IP

,

  • pid替换为程序进程id和
  • sd将被strace所示的套接字描述符替换。

Run

lsof -p PID -a -d FD
查看进程PID的描述符FD是什么。你可以运行
lsof -p PID

查看进程使用的所有描述符、套接字和活动内存映射,以及

lsof -i4 -i6

查看所有进程的所有Internet连接。手册页包含更多关于lsof命令的信息,但它相当复杂;但是,Examples部分是说明性的。