使用gdb列出Linux核心转储过程中的所有进程和线程

问题描述:

我正在为gdb/linux核心转储开发一个脚本工具,如果我将脚本指向核心bump,它会列出所有进程下的所有线程的跟踪信息,我想要实现的几乎是gdb等价于windbg!的进程0,它将dump中的所有进程和线程从堆栈中转储出来。使用gdb列出Linux核心转储过程中的所有进程和线程

gdb是否等同于!process 0?

如果没有

请告诉我gdb命令列出所有的进程,并从核心目录下的进程的所有线程在gdb倾倒?

这将使我能够编写脚本来遍历所有pid和tid,并获得可以记录到文件的回溯?

关于此脚本语言的建议,如perl/python,更好的是欢迎。

感谢 Ganesh神

这会给你所有所有的当地人线程的背痕迹的所有帧:

(gdb) thread apply all bt full

我不认为单核文件占地面积超过一个处理。看看你的脚本选项GDB documentation

而不是thread apply all bt,您最好使用Python解释器,即built into最近的GDB版本,而不是尝试解析GDB文本输出。

Nikolai是正确的,因为UNIX核心文件只涵盖一个进程(即崩溃或被杀死的进程)。

+0

嗨,我正在寻找从python执行gdb命令,就像$ var ='bt'将在$ var中包含输出一样。这似乎涉及在gdb中执行python脚本。 – Ganesh 2011-03-11 04:53:16