After patch "x86_64: Add gdb multi-stack unwind support" applied, a warning message is observed for "bt -T" cmd:
crash> bt -T bt: seek error: kernel virtual address: fffffffffffffffb type: "gdb_readmem_callback" [ffffbaebc60d6fa8] srso_return_thunk at ffffffff82246fa5 ... The root cause is, "bt -T" will set BT_TEXT_SYMBOLS_ALL for bt->flags, and eip is set to be 0 in kernel.c:back_trace(). Later in x86_64_low_budget_back_trace_cmd(), eip - 5, or 0xfffffffffffffffb is used for address disassembly by gdb "x/1i 0x%lx". This address is invalid so the warning message is output. In fact, multi-stack unwind isn't designed for "bt -T" and eip = 0 case. To avoid the warning message, let's simply bypass the "bt -T" case for x86_64. Other archs(arm64/ppc64) aren't affected by the issue because the gdb "x/1i 0x%lx" are not applied on those archs. After apply the patch: crash> bt -T [ffffbaebc60d6fa8] srso_return_thunk at ffffffff82246fa5 ... Signed-off-by: Tao Liu <l...@redhat.com> --- x86_64.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x86_64.c b/x86_64.c index cfefe3f..d7da536 100644 --- a/x86_64.c +++ b/x86_64.c @@ -3636,7 +3636,8 @@ x86_64_low_budget_back_trace_cmd(struct bt_info *bt_in) level++; } - if (is_task_active(bt->task) && bt->flags & BT_DUMPFILE_SEARCH) { + if (is_task_active(bt->task) && bt->flags & BT_DUMPFILE_SEARCH && + !(bt->flags & BT_TEXT_SYMBOLS_ALL)) { if (!extra_stacks_regs[extra_stacks_idx]) { extra_stacks_regs[extra_stacks_idx] = (struct user_regs_bitmap_struct *) -- 2.47.0 -- Crash-utility mailing list -- devel@lists.crash-utility.osci.io To unsubscribe send an email to devel-le...@lists.crash-utility.osci.io https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki