
strace -f -p <PID>
マルチスレッドプロセスのすべてのスレッドでシステムコールを追跡します。 (これもフォークに従い、-b execve
この問題を解決するオプションがあります)。
perf trace -p <PID>
プロセスのすべてのスレッドが追跡されますか?それそうだ同様に--tid
オプションもあるからです。
gnome-shell
システムのすべてのPIDを追跡したようです。しかし同時に私は走ったperf trace -a
。フィルタリングされた2つのトレースを使用しました-e fsync
。グローバルトレースは、gnome-shell
fsyncを呼び出した操作を示しています。しかし、PID固有のトレースはそうではありません。
グローバルトレースでは、ジョブはgnome-shell/9822
またはとして識別されますpool/9822
。呼び出しの呼び出しスタックfsync
(私が使用したもの--call-graph=dwarf
)は非常にスレッドのように見えます。下部の2つの項目はと__GI___clone
ですstart_thread (/usr/lib64/libpthread-2.27.so)
。の現在の出力でスレッドが見つかりませんps -eLF
。これと名前を見るとpool
一時的なワーカースレッドであると疑われます。perf trace -p <PID>
新しく作成されたスレッドをフォローしないのではないでしょうか。
バージョン: perf-4.19.3-200.fc28.x86_64