こんにちは、黒田拓と申します。 ARAI Shunichi さんは書きました: > 他スレッドの内容をダンプしたり、もしくは実行中のRubyプロセスの > 内容をダンプ・解析するような方法があれば、是非ご教示頂きたく存じます。 偶然リファレンスでset_trace_funcという関数を見つけたのですが、これを使って、こんなスクリプトで子ス レッドからメインスレッドのcallerを表示できました。 (環境によっては配列bsのサイズをもう少し大きくしないとうまく表示されないかもしれません) ------ #!/usr/bin/ruby require "pp" def recursive(n=100) if n>0 rec2(n-1) end end def rec2(n) recursive(n) end $chk = false bs = Array.new(3) tf = lambda do |event, file, line, id, binding, klass| next if $chk bs.shift bs.push(binding) end set_trace_func(tf) Thread.new do sleep(1) $chk=true bs.each_index do |i| puts("---- #{i} ----", eval("caller", bs[i])) end Thread.main.raise("END") end loop do recursive end ------ -- -------------------------------------------------- 黒田 拓(くろだ ひらく) hiraku / sapporo.email.ne.jp http://www.hinet.mydns.jp/ --------------------------------------------------