将GDB附加到Linux中正在死亡的进程中

我想将gdb附加到一个正在死亡的进程中,因为程序在生产环境中运行,我需要在那里debugging它,如果我使用gdb打开程序,速度会变慢,而且计算机也不是那么好。 我试图在应用程序中捕获信号,并在那里附加gdb,但是如果我自己发送信号,它就会起作用。 当程序停滞时(multithreading程序,主线程发生死锁或者卡住(或者显然卡住了)),并且用户强制它在桌面环境(LXDE)中退出,我不能捕捉到任何信号。 该程序是PySide的graphics界面的所有python。 只关心linux。 我的想法是创build一个内核驱动程序,并尝试过程终止或信号发送在那里,但因为这将是一个麻烦,我想问是否有一些工具,这种事情或一些信息,我可以做用于。 谢谢。

可能有办法做你想做的事情,但是如果你不能做到这一点,冻结这个程序并检查它的内存镜像就足够了。

在启动之前启用核心转储文件生成 ,然后一旦进程结束,使用kill终止。 然后使用gdb打开核心文件并分析发生了什么。