This patchset is based on Alexy's work [1], and is the follow-up of the previous "gdb stack unwinding support for crash utility" patchset. Currently gdb target analyzes only one task at a time and it backtraces only straight stack until end of the stack. If stacks were concatenated during exceptions or interrupts, gdb bt will show only the topmost one. This patchset will introduce multiple stacks support for gdb stack unwinding, which can be observed as a different threads from gdb perspective. A short usage is as follows: 'set <PID>' - to switch to a specific task 'gdb info threads' - to see list of in-kernel stacks of this task. 'gdb thread <ID>' - to switch to the stack. 'gdb bt' - to unwind it. E.g, with the patchset: crash> bt PID: 17636 TASK: ffff88032e0742c0 CPU: 11 COMMAND: "kworker/11:4" #0 [ffff88037fca6b58] machine_kexec at ffffffff8103cef2 #1 [ffff88037fca6ba8] crash_kexec at ffffffff810c9aa3 #2 [ffff88037fca6c70] panic at ffffffff815f0444 ... #9 [ffff88037fca6ec8] do_nmi at ffffffff815fd980 #10 [ffff88037fca6ef0] end_repeat_nmi at ffffffff815fcec1 [exception RIP: memcpy+13] RIP: ffffffff812f5b1d RSP: ffff88034f2a9728 RFLAGS: 00010046 RAX: ffffc900139fe000 RBX: ffff880374b7a1b0 RCX: 0000000000000030 RBP: ffff88034f2a9778 R8: 000000007fffffff R9: 00000000ffffffff ... ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 --- <NMI exception stack> --- #11 [ffff88034f2a9728] memcpy at ffffffff812f5b1d #12 [ffff88034f2a9728] mga_dirty_update at ffffffffa024ad2b [mgag200] #13 [ffff88034f2a9780] mga_imageblit at ffffffffa024ae3f [mgag200] #14 [ffff88034f2a97a0] bit_putcs at ffffffff813424ef ... crash> info threads Id Target Id Frame * 1 17636 kworker/11:4 (stack 0) crash_setup_regs (oldregs=0x0, newregs=0xffff88037fca6bb0) 2 17636 kworker/11:4 (stack 1) 0xffffffff812f5b1d in memcpy () crash> thread 2 crash> gdb bt #0 0xffffffff812f5b1d in memcpy () at arch/x86/lib/memcpy_64.S:69 ... There are 2 stacks of the current task, and we can list/switch-to/unwind each stack. [1]: https://www.mail-archive.com/devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx/msg01204.html Tao Liu (5): Add multi-threads support in crash target Call cmd_bt silently after "set pid" x86_64: Add gdb multi-stack unwind support arm64: Add gdb multi-stack unwind support ppc64: Add gdb multi-stack unwind support arm64.c | 62 ++++++++++++++++++++++++++++++++++++++++---- crash_target.c | 47 +++++++++++++++++++++++++++++++--- defs.h | 3 ++- gdb-10.2.patch | 2 +- gdb_interface.c | 6 ++--- kernel.c | 20 +++++++++++++++ ppc64.c | 51 +++++++++++++++++++++++++++++++------ x86_64.c | 68 ++++++++++++++++++++++++++++++++++++++++--------- 8 files changed, 226 insertions(+), 33 deletions(-) -- 2.47.0 -- Crash-utility mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxxxxxx https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki