[PATCH 7/7] Add handling for 64-bit module addresses in Cygwin core dumps

Christian Biesinger cbiesinger@google.com
Wed Jul 8 16:11:44 GMT 2020


On Wed, Jul 8, 2020 at 10:50 AM Jon Turney <jon.turney@dronecode.org.uk> wrote:
>
> On 06/07/2020 21:13, Christian Biesinger via Gdb-patches wrote:
> > On Wed, Jul 1, 2020 at 4:34 PM Jon Turney <jon.turney@dronecode.org.uk> wrote:
> >> --- a/bfd/elf.c
> >> +++ b/bfd/elf.c
> >> @@ -10185,10 +10185,19 @@ elfcore_grok_win32pstatus (bfd *abfd, Elf_Internal_Note *note)
> >>         break;
> >>
> >>       case 3 /* NOTE_INFO_MODULE */:
> >> -      /* Make a ".module/xxxxxxxx" section.  */
> >> +    case 4 /* NOTE_INFO_MODULE64 */:
> >
> > It really seems like these should be actual constants, which would
> > also make it easier to understand...
>
> Absolutely.
>
> Before [1], this structure was defined by including Cygwin's
> <sys/procfs.h> (so this code didn't work in cross-environments).
>
> I can't find a model of adding note structure definitions (the other
> grok_note functions seem to rely on OS definitions), so I'm not sure
> what kind of change you are asking me to make in this patch.

I was just suggesting adding a `static constexpr int
NOTE_INFO_MODULE64 = 4` in some appropriate place, maybe at the top of
this file.

Er, I guess this is bfd, so make it a #define.

>
> [1]
> https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=4a6636fbb5c051fbe15d18a005a2a505ef652571
>
> >
> >> +      /* Make a ".module/<base_address>" section.  */
> >>         /* module_info.base_address */
> >> -      base_addr = bfd_get_32 (abfd, note->descdata + 4);
> >> -      sprintf (buf, ".module/%08lx", (unsigned long) base_addr);
> >> +      if (type == 3)
> >
> > ...this if.
> >
> >> --- a/gdb/windows-tdep.c
> >> +++ b/gdb/windows-tdep.c
> >> +  if (data_type == 3) /* NOTE_INFO_MODULE */
> >
> > Same here.


More information about the Gdb-patches mailing list