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