加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 04:16:18 所属栏目:百科 来源:网络整理
导读:有没有办法打印 Ruby 1.9.x进程的运行时堆栈跟踪?我知道有一个名为pstack for Ruby 1.8的实用程序,但该项目似乎在几年前就被放弃了: https://github.com/ice799/pstack.对于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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读