Hi, Shivang
Thank you for the fix.

On Mon, Jul 7, 2025 at 7:34 PM Shivang Upadhyay <shiva...@linux.ibm.com>
wrote:

> Crash with GDB 16.2, the following warnings are printed:
>
> crash>
> crash: page excluded: kernel virtual address: c0000000022d6098  type:
> "gdb_readmem_callback"
> crash: page excluded: kernel virtual address: c0000000022d6098  type:
> "gdb_readmem_callback"
>
> This occurs because the elf_locate_base function in GDB 16.2 attempts
> to read the address of the dynamic linker runtime structure, which is
> present in the .dynamic section of the executable. However, this section
> may be excluded from the dump by makedumpfile.
>
> Commit e906eaca2b1a ("Fix the issue of "page excluded" messages flooding")
> attempted fix this by suppressing these warnings for regular users, but the
> warnings still appear when crash is started in debug mode.
>
> To fix this, remove the elf_locate_base call in GDB that tries to read the
> .dynamic section, as this information is not useful for debugging kernel
> images in either dump or live kernel scenarios.
>
>
Good to see it. And we have noticed that some similar debug information
also occurs on x86 64, E.g:
bt: seek error: kernel virtual address: ffffffffffffffc0  type:
"gdb_readmem_callback"
bt: seek error: kernel virtual address: fffffffffffffffb  type:
"gdb_readmem_callback"
bt: seek error: kernel virtual address: fffffffffffffffb  type:
"gdb_readmem_callback"

This is not always reproduced, but probably the reason should be the same.

In addition, as I mentioned, this issue can not be reproduced on crash
8(gdb-10.2), and I saw it has the same function call in
the elf_locate_base():
...
  /* Find DT_DEBUG.  */
  if (scan_dyntag (DT_DEBUG, exec_bfd, &dyn_ptr, NULL)
      || scan_dyntag_auxv (DT_DEBUG, &dyn_ptr, NULL))
    return dyn_ptr;

  /* This may be a static executable.  Look for the symbol
     conventionally named _r_debug, as a last resort.  */
...

This is weird to me. So far I haven't seen a big difference.

Thanks
Lianbo

Cc: Sourabh Jain <sourabhj...@linux.ibm.com>
> Cc: Lianbo Jiang <liji...@redhat.com>
> Signed-off-by: Shivang Upadhyay <shiva...@linux.ibm.com>
> ---
>  gdb-16.2.patch | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/gdb-16.2.patch b/gdb-16.2.patch
> index 151e4e2..7b79cdf 100644
> --- a/gdb-16.2.patch
> +++ b/gdb-16.2.patch
> @@ -1952,3 +1952,19 @@ exit 0
>       }
>
>     /* Remember the bfd indexes for the .text, .data, .bss and
> +--- gdb-16.2/gdb/solib-svr4.c.orig
> ++++ gdb-16.2/gdb/solib-svr4.c
> +@@ -742,11 +742,13 @@ elf_locate_base (void)
> +       return extract_typed_address (pbuf, ptr_type);
> +     }
> +
> ++#ifndef CRASH_MERGE
> +   /* Find DT_DEBUG.  */
> +   if (gdb_bfd_scan_elf_dyntag (DT_DEBUG, current_program_space->exec_bfd
> (),
> +                               &dyn_ptr, NULL)
> +       || scan_dyntag_auxv (DT_DEBUG, &dyn_ptr, NULL))
> +     return dyn_ptr;
> ++#endif
> +
> +   /* This may be a static executable.  Look for the symbol
> +      conventionally named _r_debug, as a last resort.  */
> --
> 2.49.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