3

tid を知ることで、スレッドが現在システム コール (読み取り/書き込みなど) を実行しているかどうかを知る必要があります。Linuxでそれを行う方法はありますか?

4

1 に答える 1

2

これは、スレッドの状態コードをリストする必要があります

ps -p<pid> -o stat

関連する 2 つのコードは次のとおりです。

D    uninterruptible sleep (usually IO)
S    interruptible sleep (waiting for an event to complete)

編集:プログラムで正確なシステムコールを取得したい場合は、ptrace提案して読んだように使用できます。フラグをEAX使用しPTRACE_SYSCALLて、次のシステムコールエントリでプロセスを停止する必要もあります。

于 2012-11-13T16:37:44.993 に答える