OSX - 如何查看进程中所有线程的 TID?

OSX - How can I see the TID of all threads from my process?

On Linux ps -eLf | grep my-process-name 给出了我的进程中的线程列表以及每个线程的 TID。

On OSX ps -M pid 给了我线程列表,但没有显示每个线程的 TID。

如何从命令行查看单个进程下的线程 TID?

您在 Mac OS 上看不到带有 ps 的 TID,因为您在使用 ps L 列出所有可能的列选项时会遇到这种情况。

无论如何,如果你不介意作为根探索线程,你可以使用dtruss,它主要用于处理系统调用细节,但它至少会向你显示 PID/LWPID (PID/THRD) 列。

sudo dtruss -ap pid

好吧,虽然我意识到它可能被某些人认为是亵渎神灵,但跨平台 Powershell 现在可用于 macOS,并且使用它查看线程 ID 非常简单。这将起作用:

Get-Process -Id 1234 | Select-Object Threads

它会为每个适用的线程吐出一个包含大约 10 个属性的对象。其中之一是 'Id'。你也可以这样做:

gps -Id 1234 | select -Expand Threads | select -Expand Id

如果你想缩短命令,只取回 ID。