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。
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。