如何打印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 我可以在我的代码中构建这个功能,但我更喜欢使用更通用的外部解决方案.谢谢. 解决方法
无论何时调用内核方法调用者,都会将当前调用堆栈作为数组.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |