列出所有流程&使用gdb从Linux核心转储进程下的线程

时间:2011-03-09 13:04:00

标签: linux operating-system gdb cgdb

我正在为gdb / linux核心转储开发一个脚本工具,如果我将脚本指向核心凹凸,它会列出正在处理的所有线程的所有堆栈跟踪,即我想要实现的几乎是gdb相当于windbg的!进程0从转储中转储堆栈的所有进程和线程。

是否有gdb等同于!process 0?

如果不是

什么是gdb命令列出所有进程并列出来自核心转储的gdb进程下的所有线程?

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

对于脚本语言的建议,例如perl / python,欢迎使用更好的。

由于 内甚

2 个答案:

答案 0 :(得分:2)

这将为您提供所有帧中所有本地人的所有线程的回溯:

(gdb) thread apply all bt full

我认为单核心文件不会涵盖多个进程。请查看GDB documentation以获取脚本选项。

答案 1 :(得分:0)

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

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