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

Jon Turney jon.turney@dronecode.org.uk
Wed Jul 8 15:50:41 GMT 2020


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.

[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