Есть ли способ распечатать трассировку стека времени выполнения для процесса 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
Я мог бы встроить эту функциональность в свой код, но я бы предпочел использовать более общее внешнее решение. Спасибо.