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.