我正在为gdb / linux核心转储开发一个脚本工具,如果我将脚本指向核心凹凸,它会列出正在处理的所有线程的所有堆栈跟踪,即我想要实现的几乎是gdb相当于windbg的!进程0从转储中转储堆栈的所有进程和线程。
是否有gdb等同于!process 0?
如果不是
什么是gdb命令列出所有进程并列出来自核心转储的gdb进程下的所有线程?
这使我能够编写一个脚本来遍历所有pid和tid并获得可以记录到文件的回溯吗?
对于脚本语言的建议,例如perl / python,欢迎使用更好的。
由于 内甚
答案 0 :(得分:2)
这将为您提供所有帧中所有本地人的所有线程的回溯:
(gdb) thread apply all bt full
我认为单核心文件不会涵盖多个进程。请查看GDB documentation以获取脚本选项。
答案 1 :(得分:0)
代替thread apply all bt
,您最好使用built into最新GDB版本的Python解释器,而不是尝试解析GDB文本输出。
Nikolai是正确的,因为UNIX核心文件只涵盖一个进程(崩溃或被杀死的进程)。