This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC-v5] Fix .text section offset for windows DLL (was Calling __stdcall functions in the inferior)


On 2012-11-27 22:58, Pierre Muller wrote:
   Thanks, Tom...
   it really seems that this is the culprit:
I was freeing again already freed memory, which of course
created random crashes later.

   I send here rapidly a new patch version.
I really tested the allocation problems by adding
allocation + free'ing of each of the first parameters
used in prim_record_minimal_symbol
and it does seem that freeing of char array doesn't lead to any problem.

   So the only trouble was related to the
reallocation of section_data and seems to be fixed
thanks to Tom's proposal.

Yuanhui Zhang,
could you please check if the new patch
suppresses the crash you had when you tried the previous version?

Thanks to everyone...

Pierre Muller


2012-11-25 Pierre Muller <muller@sourceware.org>


         * coff-pe-read.h (pe_text_section_offset): Declare new function.
         * coff-pe-read.c (debug_coff_pe_read): New static variable.
         (struct read_pe_section_data): Add section_name field.
         (IMAGE_SCN_CNT_CODE): New macro, if not already defined.
         (IMAGE_SCN_CNT_INITIALIZED_DATA): Ditto.
         (IMAGE_SCN_CNT_UNINITIALIZED_DATA): Ditto.
         (get_pe_section_index): New function.
         (struct pe_sections_info): New type.
         (get_section_vmas): Use new struct pe_sections_info.
         (add_pe_exported_sym): Handle unnamed exported function.
         (add_pe_forwarded_sym): New function.
         (read_pe_truncate_name): Truncate at last dot.
         (pe_as16): New function.
         (read_pe_exported_syms): Use ordinal of function to
         retrieve correct RVA address of function and handle
         forwarded symbol.
         (pe_text_section_offset): New function.
         (show_debug_coff_pe_read): New function.
         (_initialize_coff_pe_read): New function adding
         'set/show debug coff_pe_read' commands.

         * windows-tdep.c (windows_xfer_shared_library): Use
         pe_text_section_offset function instead of possibly wrong
         0x1000 constant for .text sextion offset.


I test this patch again, it works fine without crash in the below cases:


gdb_pure_cvs_20121207 + this patch + python_enabled ----> No crash on debugging, "print GetLastError()" works correctly.
gdb_pure_cvs_20121207 + this patch + python_disabled----> No crash on debugging, "print GetLastError()" works correctly.


Yuanhui Zhang



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]