我正在尝试转储所有活动线程的列表,包括每个线程的当前堆栈。我可以使用 threading.enumerate() 获取所有线程的列表,但我无法找到从那里进入堆栈的方法。
背景:Zope/Plone 应用程序时常出现异常,消耗 100% 的 cpu,需要重新启动。我感觉这是一个没有正确终止的循环,但我无法在测试环境中重现它以进行验证。我设法注册了一个可以从外部触发的信号处理程序,因此一旦情况再次发生,我就可以触发一些代码。如果我可以转储所有活动线程的堆栈跟踪,那将给我一个线索是哪里出了问题。洞东西在python 2.4上运行......
任何关于如何追踪此类情况的想法都值得赞赏:)
干杯,克里斯