如何打印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

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

解决方法

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

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...