applied with a rebase:
https://github.com/crash-utility/crash/commit/2c69f93e59c6b2efac5bae9f7891dbe1e0094fdd

On Thu, Jul 24, 2025 at 1:23 PM Tao Liu <l...@redhat.com> wrote:
>
> Hi Shivang,
>
> Sorry for the late. LGTM, so ack.
>
> Thanks,
> Tao Liu
>
> On Mon, Jul 21, 2025 at 8:18 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.
> >
> > The repeated calls to elf_locate_base were introduced by gdb
> > commit [1] aebb370 ("gdb, solib-svr4: support namespaces in
> > DSO iteration") via svr4_iterate_over_objfiles_in_search_order.
> >
> > To check whether the kernel includes DT_DEBUG information,
> > prints were added inside crash::xfer_partial, which is
> > called through elf_locate_base when reading from vmcore.
> > Even when running crash on /proc/kcore, all output data was
> > zero. This confirms that DT_DEBUG information is never
> > present in the kernel image.
> >
> > `mod -S` continues to function correctly after the following
> > patch:
> >
> > ...
> > crash> mod -S
> > Enable debuginfod for this session? (y or [n])
> >      MODULE       NAME                             TEXT_BASE         SIZE  
> > OBJECT FILE
> > c0080000004a0300  dm_log                        c008000000480000   196608  
> > XXX/lib/modules/5.14.0-592.el9.ppc64le/kernel/drivers/md/dm-log.ko
> > c0080000006d1100  sd_mod                        c008000000580000   196608  
> > XXX/lib/modules/5.14.0-592.el9.ppc64le/kernel/drivers/scsi/sd_mod.ko
> > c0080000005c0080  dm_region_hash                c0080000005a0000   196608  
> > XXX/lib/modules/5.14.0-592.el9.ppc64le/kernel/drivers/md/dm-region-hash.ko
> > c008000000770700  sg                            c008000000620000   262144  
> > XXX/lib/modules/5.14.0-592.el9.ppc64le/kernel/drivers/scsi/sg.ko
> > c008000000660500  dm_mirror                     c008000000640000   196608  
> > XXX/lib/modules/5.14.0-592.el9.ppc64le/kernel/drivers/md/dm-mirror.ko
> > ...
> >
> >
> >
> > 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 DT_DEBUG read call, from the
> > elf_locate_base function 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.
> >
> >
> > [1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=aebb370
> >
> > Cc: Tao liu <l...@redhat.com>
> > Cc: Lianbo Jiang <liji...@redhat.com>
> > Cc: Sourabh Jain <sourabhj...@linux.ibm.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.50.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