如何打印Ruby 1.9进程的运行时堆栈跟踪?

前端之家收集整理的这篇文章主要介绍了如何打印Ruby 1.9进程的运行时堆栈跟踪?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法打印 Ruby 1.9.x进程的运行时堆栈跟踪?我知道有一个名为pstack for Ruby 1.8的实用程序,但该项目似乎在几年前就被放弃了: 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

我可以在我的代码中构建这个功能,但我更喜欢使用更通用的外部解决方案.谢谢.

解决方法

无论何时调用内核方法调用者,都会将当前调用堆栈作为数组.

猜你在找的Ruby相关文章