python gdb打印所有协程栈

xhzhf 2015-10-12 11:13:20
问题:
我的python程序在用户处出现了死锁。程序是单线程多协程。协程使用greenlet实现
我已经把运行的python程序的内存dump下来了。
但是通过gdb无法得到所有的协程栈,只能得到运行的协程的栈,所以问题无法定位
请问有无办法得到所有的协程栈。

尝试过的办法:
1.在gdb中使用导入libpython.py,只能得到python代码的一个协程栈
2.尝试使用gdb的python接口,发现该接口主要是操作gdb对象准备的。无法在gdb中操作运行的python程序的object

其实在一个python程序中得到本进程的所有的协程我有办法,遍历所有object可以得到。但是现在是程序出问题了,如何从外部得到所有的协程栈,或者说如何在gdb中遍历该python程序的object
...全文
99 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧