【问题标题】:List all Processes & Threads under processes from Linux core dump using gdb使用 gdb 从 Linux 核心转储中列出进程下的所有进程和线程
【发布时间】:2011-07-11 21:32:31
【问题描述】:

我正在为 gdb/linux 核心转储开发一个脚本工具,如果我将脚本指向核心凹凸,它会列出进程下所有线程的所有堆栈跟踪,即,我试图实现的 gdb 几乎等同于 windbg !process 0 从转储中转储所有带有堆栈的进程和线程。

是否存在相当于 !process 0 的 gdb ?

如果不是

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

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

还有关于脚本语言的建议,例如perl/python,欢迎更好的。

谢谢 象头神

【问题讨论】:

    标签: linux operating-system gdb cgdb


    【解决方案1】:

    这将为您提供所有帧的所有线程的回溯:

    (gdb) thread apply all bt full

    我不认为单个核心文件涵盖的进程不止一个。查看GDB documentation 了解您的脚本选项。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 嗨,我正在寻找从 python 执行 gdb 命令,例如 $var=bt 将包含 $ var 中的输出。这似乎处理在 gdb 中执行 python 脚本。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-24
      • 2013-02-22
      • 2022-10-17
      • 2023-03-28
      • 2010-11-24
      • 2021-11-16
      • 1970-01-01
      相关资源
      最近更新 更多