Peter Oberndorfer a écrit :
Winedbg would crash on my system when trying to set a breakpoint (loading the debug info from a .debug file) The problem is that hash_table_elt adds the symbols of the .debug file to the hashtable of the parent file. But at the time elf_new_public_symbols is run, the sections of the .debug file are already unmapped. In addition to that the symbols in .debug would be added 2 times (.so and .debug file)
Changelog: dbghelp: fix debuglink crash, accessing memory after munmap
I don't think it's the right fix IMO, we shouldn't call elf_new_public_symbols while processing the .gnu_link target, but in the parent call to elf_load_debug_from_map can you provide more information on the crash itself (which reference is lost to an unmapped section)
A+
On Sunday 21 January 2007 16:25, Eric Pouech wrote:
Peter Oberndorfer a écrit :
Winedbg would crash on my system when trying to set a breakpoint (loading the debug info from a .debug file) The problem is that hash_table_elt adds the symbols of the .debug file to the hashtable of the parent file. But at the time elf_new_public_symbols is run, the sections of the .debug file are already unmapped. In addition to that the symbols in .debug would be added 2 times (.so and .debug file)
Changelog: dbghelp: fix debuglink crash, accessing memory after munmap
I don't think it's the right fix IMO, we shouldn't call elf_new_public_symbols while processing the .gnu_link target, but in the parent call to elf_load_debug_from_map can you provide more information on the crash itself (which reference is lost to an unmapped section)
The crash happens at elf_new_public_symbols while executing ELF32_ST_TYPE(ste->symp->st_info) == STT_FUNC ste->symp points to the unmapped section. But ste->symp->st_size and ste->symp->st_value will probably also produce problems... Also the comment in elf_hash_symtab says:
* as we added in the ht_symtab pointers to the symbols themselves, * we cannot unmap yet the sections, it will be done when we're over * with this ELF file
Wouldn't moving the elf_new_public_symbols also create the need to unmap sections from parent call? Do you want to unmap both files in one go?
A+
Greetings Peter
PS: If it matters i have gcc4.1.1 and .debug links for most of my system libraries