我应该如何解释活动监视器“打开文件和端口”的输出?

我应该如何解释活动监视器“打开文件和端口”的输出?

我正在尝试调试程序中的文件描述符泄漏。我正在查看活动监视器的“打开文件和端口”窗口,希望收集一些信息。

我看到了几种类型的条目。以下是示例:

cwd
/
txt
/Applications/Utilities/Activity Monitor.app/Contents/MacOS/Activity Monitor
0
/dev/null
1
/dev/null
2
/dev/null
3
4
5
6
7
->0x1c8e9b47ad822e5b

我认为我了解这种格式的几个方面:

  • 一般来说,第一行告诉文件描述符,第二行显示它指向的位置:
    • cwd /表示应用程序的当前目录是 /
    • txt /Applications/.../Activity Monitor意味着“活动监视器”被映射到内存中,而没有打开文件描述符
    • 0 /dev/null表示文件描述符 0 与 /dev/null 关联
    • 7 ->0x1c8e9b47ad822e5b意味着文件描述符 7 与没有持久名称的文件类对象相关联(?)

但是文件描述符 3 到 6 呢?它们与什么相关?

答案1

活动监视器显示的结果,删除了每行的第一个字符。缺失文件条目的含义仍不清楚,但 lsof 手册页(在终端中)的 NAME 部分下lsof -Fn -p [pid]显示了常见的可能性。man lsof

相关内容