私は、8つの独立したスレッドを実行しているアプリケーションがあり、Pthreadの周りのラッパークラスによって生成されています。すべてのスレッドは無限ループ中で実行され、サイクルタイムはそれぞれ1秒です。メインスレッド(Main Function、無限ループ中で実行中)から、何らかの理由でスレッドがブロックされているかどうか、スレッドステータスを監視したい。スレッドの状態を監視するためのシステムコールによってそれを行う方法はありますか?C++:Linuxでのpthreadステータス監視
1
A
答えて
0
GDBが最良の選択肢である、
あなたは、これは、各スレッドのアプリケーションや状況ですべてのスレッドを表示します
+0
私はプログラム自体でそれをやりたい、gdbはオプションではない...スレッドの状態に基づいて何かをする意思決定がある – user1678399
0
gdb -p "pid"
info threads
以下のコマンドを使用して、実行中のプロセスにGDBを添付procファイルシステム内のプロセス状態情報にアクセスできます。スレッドのPIDを使用して、ステータスファイルの/proc/[PID]/status
内容にその状態を調べることができようになっています
[email protected]:/proc/1151$ cat status
Name: systemd-logind
State: S (sleeping)
Tgid: 1151
Ngid: 0
Pid: 1151
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
...
関連する問題
- 1. postgresqlデータベースのステータスとアラートを監視するシェルスクリプト
- 2. ダッシュボードでの監視
- 3. どのようにMySQLサーバのステータスを監視できますか?
- 4. gen_serverの監視
- 5. シリアルポートの監視
- 6. データベースオブジェクトの監視
- 7. リモートプロセスの監視
- 8. ネットワークトラフィックの監視
- 9. ジャージーサーバーの監視
- 10. アプリケーションサーバーの監視
- 11. プログラムクラッシュの監視
- 12. Cでのガベージコレクタの監視
- 13. Linuxでのファイルアクセスの監視
- 14. AndroidでのHTTPS監視
- 15. GPU監視ソフトウェア
- 16. ネットワーク監視ソフトウェア
- 17. パフォーマンス監視Openerp
- 18. ソケット監視
- 19. Java監視アプリケーション
- 20. プロセス監視
- 21. ネットワーク監視
- 22. MSSQL監視ツール
- 23. 電力監視
- 24. IIS監視ツール
- 25. NewRelic - 監視プロセス
- 26. Wordpressアップデートの監視
- 27. HBaseクラスタの監視
- 28. GDIコールの監視
- 29. Spark:クラスタモードアプリケーションの監視
- 30. Windowsプロセスの監視
あなたがメインスレッドからPSを呼び出し、個々のスレッドの状態を見て可能性があり、たとえば、スレッドがS +状態またはD状態にある場合。または、ps srcコードを見て、psを呼び出してその出力を解析せずに直接実行します。 –