Kernel#caller
の出力を別のスレッドから取得することはできますか?または、バックグラウンドのメインスレッドのスタックをさらに良くすることができます。これは、プロファイラの一種として機能します。別のスレッドのコールスタックを取得するにはどうすればよいですか?
2
A
答えて
0
いくつかのスレッドのための機能のバックトレースを取得するためのスレッド#バックトレース方法があります:
https://ruby-doc.org/core-2.4.1/Thread.html#method-i-backtrace
backtrace
→配列は、ターゲットスレッドの現在のバックトレースを返しソース
をトグルします。使用例については
は、このプロジェクトのことを確認してください。https://github.com/frsyuki/sigdump(それはバックトレースを表示し、RubyとJRubyのためのいくつかのメモリ使用量の情報になる)
sigdump
- 要するに:Ruby用のJava VMのSIGQUIT(利用信号にRubyプロセスのスタックトレースを再起動せずに表示する)。... SIGCONTシグナルを送信するだけで、バックトレースとメモリプロファイルが/tmp/sigdump-.logファイルにダンプされます。すべてのスレッド
https://github.com/frsyuki/sigdump/blob/master/lib/sigdump.rb
dump_all_thread_backtrace(io)
...
Thread.list.each do |thread|
dump_backtrace(thread, io)
...
def self.dump_backtrace(thread, io)
status = thread.status
if status == nil
status = "finished"
elsif status == false
status = "error"
end
io.write " Thread #{thread} status=#{status} priority=#{thread.priority}\n"
if thread.backtrace
thread.backtrace.each {|bt|
io.write " #{bt}\n"
}
end
io.flush
nil
end
関連する問題
- 1. Clojureでコールスタックを取得するにはどうすればよいですか?
- 2. 断続的にdevenv.comをクラッシュさせるコールスタックを取得するにはどうすればよいですか?
- 3. 一意のスレッド識別子を取得するにはどうすればよいですか?
- 4. C内のスレッドからコールスタックを取得
- 5. 作成されたスレッドとは別のスレッドから呼び出されるイベントハンドラを取得するにはどうすればよいですか?
- 6. Javaの別のスレッドから1つのスレッドのデータを取得するにはどうすればよいですか?
- 7. Windowsスレッドの戻り値を取得するにはどうすればよいですか?
- 8. XMPPチャットスレッドのスレッドIDを取得するにはどうすればよいですか?
- 9. あるクラスから別のクラスにStringを取得するにはどうすればよいですか?
- 10. IEnumerableのアイテムの値を別のクラスのメンバーで取得するにはどうすればよいですか?
- 11. 別のフォルダの親フォルダを取得するにはどうすればよいですか?私の設定で
- 12. オブジェクトの現在の値を別のファイルで取得するにはどうすればよいですか?
- 13. パスワードを知らずに別のユーザーのWindowsIdentityを取得するにはどうすればよいですか?
- 14. 別のアプリの通知から画像を取得するにはどうすればよいですか?
- 15. 構造体から別のcppファイルの値を取得するにはどうすればよいですか?
- 16. ライブデータを別のサイトからWordPressサイトに取得するにはどうすればよいですか?
- 17. 別のスレッドで子どもを削除するにはどうすればよいですか?
- 18. N2CMSで別のコンテンツアイテムのURLを取得するにはどうすればよいですか?
- 19. POST中に別のリソースのJAX-RS @Pathを取得するにはどうすればよいですか?
- 20. カスタムオープングラフオブジェクトのカスタムプロパティを取得するにはどうすればよいですか?
- 21. リストのアドレスを取得するにはどうすればよいですか?
- 22. ネットワークアプリケーションのライセンスを取得するにはどうすればよいですか?
- 23. リダイレクトページのページコンテンツを取得するにはどうすればよいですか?
- 24. Java:org.w3c.dom.Nodeのxpathを取得するにはどうすればよいですか?
- 25. オーバーレイオブジェクトのイベントハンドラを取得するにはどうすればよいですか?
- 26. LinkedHashMapのkeyIteratorを取得するにはどうすればよいですか?
- 27. DynamicControlの値を取得するにはどうすればよいですか?
- 28. webpackのライブリロードを取得するにはどうすればよいですか?
- 29. StackExchange.Redisのキーカウントを取得するにはどうすればよいですか?
- 30. デスクトップウィンドウのハンドルを取得するにはどうすればよいですか?
それともこれを確認するの
バックトレース:http://itreallymatters.net/post/
sigdumpは(もサンプル出力を参照)の情報を、以下のダンプ29549982905/generate-thread-dump-for-ruby-scripts(とthread#backtraceについて: "*このメソッドは1.9にあります。古いRubyのバージョンでは、現在のバージョンのみで動作するため、糸。*") – osgx