Как мне распечатать трассировку стека времени выполнения процесса Ruby 1.9?

Есть ли способ распечатать трассировку стека времени выполнения для процесса Ruby 1.9.x? Я знаю, что для Ruby 1.8 была утилита под названием pstack , но проект, похоже, был заброшен пару лет назад: https://github.com/ice799/pstack . Есть ли что-нибудь подобное для Ruby 1.9? Большое спасибо!

РЕДАКТИРОВАТЬ: меня интересует использование внешнего инструмента для генерации трассировки стека (не работающего в том же пространстве памяти, что и процесс Ruby).

Как указал @mosch, метод Kernal # caller работает изнутри запущенного процесса Ruby.

Вы даже можете встроить поддержку своего кода Ruby, который улавливает сигналы процесса и печатает трассировку стека:

Signal.trap("SIGTERM") { p caller }

Ссылка: http://www.ruby-doc.org/core-1.9.3/Signal .html

Я мог бы встроить эту функциональность в свой код, но я бы предпочел использовать более общее внешнее решение. Спасибо.

7
задан Will Sulzer 5 December 2011 в 18:32
поделиться