On Fri, May 31, 2024 at 5:38 PM <devel-requ...@lists.crash-utility.osci.io>
wrote:

> Date: Fri, 31 May 2024 17:19:35 +0800
> From: Tao Liu <l...@redhat.com>
> Subject: [Crash-utility] [PATCH v4 12/16] x86_64: Fix invalid input
>         "=>" for bt command
> To: devel@lists.crash-utility.osci.io
> Cc: Mahesh J Salgaonkar <mah...@linux.ibm.com>, "Naveen N . Rao"
>         <naveen.n....@linux.vnet.ibm.com>, Lianbo Jiang <
> liji...@redhat.com>,
>         Alexey Makhalov <alexey.makha...@broadcom.com>
> Message-ID: <20240531091939.97828-13-l...@redhat.com>
> Content-Type: text/plain; charset=UTF-8
>
> There may be extra "=>" prefix before gdb disassembly, as a result,
> parse_line() will return string "=>" as arglist[0], which will be
> converted to number by htol() and fails. E.g.:
>
> crash> gdb x/40i __list_del_entry
>    ...
>    0xffffffff8133c384 <__list_del_entry+36>:    cmp    %rcx,%rax
>    0xffffffff8133c387 <__list_del_entry+39>:    je     0xffffffff8133c403
> <__list_del_entry+163>
> => 0xffffffff8133c389 <__list_del_entry+41>:    mov    (%rax),%r8
>    0xffffffff8133c38c <__list_del_entry+44>:    cmp    %r8,%rdi
>    0xffffffff8133c38f <__list_del_entry+47>:    jne    0xffffffff8133c3e4
> <__list_del_entry+132>
>    0xffffffff8133c391 <__list_del_entry+49>:    mov    0x8(%rdx),%r8
>
> Before the patch:
>
> crash> bt
>  ...
>  #10 [ffff880095647c00] async_page_fault at ffffffff816a8638
>     [exception RIP: __list_del_entry+41]
>     RIP: ffffffff8133c389  RSP: ffff880095647cb0  RFLAGS: 00010207
>     RAX: 0000000000000000  RBX: ffffea0400408020  RCX: dead000000000200
>     RDX: 0000000000000000  RSI: 0000000000000246  RDI: ffffea0400408020
>     RBP: ffff880095647cb0   R8: 0000000080000431   R9: ffffffff81e835c0
>     R10: 0000000000000000  R11: 0000000000000400  R12: ffff880138795b58
>     R13: 0000000010010201  R14: ffff880095647d70  R15: 0000000400408040
>     ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
>  bt: invalid input: "=>"
>  #11 [ffff880095647cb8] list_del at ffffffff8133c43d
>  #12 [ffff880095647cd0] devm_memremap_pages at ffffffff81180c53
>
> After the patch:
>
> No string as 'bt: invalid input: "=>"' of output.
>
> Cc: Sourabh Jain <sourabhj...@linux.ibm.com>
> Cc: Hari Bathini <hbath...@linux.ibm.com>
> Cc: Mahesh J Salgaonkar <mah...@linux.ibm.com>
> Cc: Naveen N. Rao <naveen.n....@linux.vnet.ibm.com>
> Cc: Lianbo Jiang <liji...@redhat.com>
> Cc: HAGIO KAZUHITO(萩尾 一仁) <k-hagio...@nec.com>
> Cc: Tao Liu <l...@redhat.com>
> Cc: Alexey Makhalov <alexey.makha...@broadcom.com>
> Signed-off-by: Tao Liu <l...@redhat.com>
> ---
>  x86_64.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/x86_64.c b/x86_64.c
> index 54c69fd..47c215f 100644
> --- a/x86_64.c
> +++ b/x86_64.c
> @@ -8829,6 +8829,8 @@ x86_64_get_framesize(struct bt_info *bt, ulong
> textaddr, ulong rsp, char *stack_
>
>          rewind(pc->tmpfile2);
>          while (fgets(buf, BUFSIZE, pc->tmpfile2)) {
> +               if (STRNEQ(buf, "=>"))
> +                       shift_string_left(buf, 2);
>                 strcpy(buf2, buf);
>
>
This looks good.

Thanks
Lianbo


>                 if (CRASHDEBUG(3))
> --
> 2.40.1
>
--
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