Hi, Tao

Thank  you for the patch.

On 7/9/25 13:41, devel-requ...@lists.crash-utility.osci.io wrote:
Date: Wed,  9 Jul 2025 17:41:12 +1200
From: Tao Liu<l...@redhat.com>
Subject: [Crash-utility] [PATCH] x86_64: filter unwanted warning
        message for "bt -T" cmd
To:devel@lists.crash-utility.osci.io
Cc: Tao Liu<l...@redhat.com>
Message-ID:<20250709054112.145454-1-l...@redhat.com>
Content-Type: text/plain; charset="US-ASCII"; x-default=true

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.

For the patch:  Ack.


Thanks

Lianbo

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

Reply via email to