0

Linux x64 で、できるだけ侵襲的で影響が少ない方法で、既に実行中のプロセスのすべてのスレッドにわたってスタック トレースを取得するにはどうすればよいですか?

今まで考えたこと:

  • gdb - プロセスが遅くなりすぎて、時間がかかりすぎるのではないかと心配しています。
  • strace+ - どのようなパフォーマンスがあるのか​​わからない、経験のある人はいますか? それでも、IIUC は syscall のみをトレースし、各スレッドが syscall に入るとは期待できません。具体的には、いくつかのスレッドが既にハングしている可能性があります。
  • クラッシュを強制してコアダンプを取得します-ええ...簡単にそれができれば、おそらくすでにデバッグに忙しいでしょう...この質問の目的のために、部屋に象がいないと仮定しましょう.かなりお願いします...
4

2 に答える 2

1

それはまさに pstack が行うことです。http://www.linuxcommand.org/man_pages/pstack1.htmlを参照してください。

于 2013-07-31T08:05:12.813 に答える