我想将gdb附加到一个垂死的进程,因为程序在生产中运行,我需要在那里调试它,如果我用gdb打开程序它会慢下来并且计算机不是很好。我试图在应用程序中捕获信号并在那里附加gdb但是如果我自己发送信号它就可以工作。当程序停止运行(多线程程序,并且主线程出现死锁或以某种方式卡住(或显然卡住)),并且用户强制它在桌面环境(LXDE)中退出时,我无法抓住没信号。该程序全部都是python与PySide的图形界面。只关心linux。 我的想法是创建一个内核驱动程序,并尝试过程钩子进程终止或信号发送在那里,但因为这将是一个麻烦我想问是否有这种东西的工具或我可以做的一些信息用于。感谢。
答案 0 :(得分:1)
可能有办法做你想做的事,但如果你不能,那么冻结程序并检查其记忆图像就足够了吗?
Enable core dump file generation在它开始之前,然后一旦进程被清除,就用kill终止它。然后使用gdb打开core file并分析发生的情况。