Module: wine Branch: master Commit: 6d0948f7a6095bd49a5a6392290cfd01c1ee6f8f URL: http://source.winehq.org/git/wine.git/?a=commit;h=6d0948f7a6095bd49a5a639229...
Author: Peter Oberndorfer kumbayo84@arcor.de Date: Mon Nov 6 20:05:28 2006 +0100
dbghelp: Make dwarf2_parse_line_numbers handle missing line number section.
---
dlls/dbghelp/dwarf.c | 5 +++++ dlls/dbghelp/elf_module.c | 2 +- 2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index eab1f04..b68824b 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -150,6 +150,7 @@ typedef struct dwarf2_debug_info_s struct vector children; } dwarf2_debug_info_t;
+#define NO_MAP ((const void*)0xffffffff)
typedef struct dwarf2_section_s { @@ -1595,6 +1596,10 @@ static void dwarf2_parse_line_numbers(co struct vector files; const char** p;
+ /* section with line numbers stripped */ + if (sections[section_line].address == NO_MAP) + return; + traverse.data = sections[section_line].address + offset; traverse.start_data = traverse.data; traverse.end_data = traverse.data + 4; diff --git a/dlls/dbghelp/elf_module.c b/dlls/dbghelp/elf_module.c index a509848..8aaeb5f 100644 --- a/dlls/dbghelp/elf_module.c +++ b/dlls/dbghelp/elf_module.c @@ -901,7 +901,7 @@ static BOOL elf_load_debug_info_from_map dw2_debug, fmap->sect[debug_sect].shdr.sh_size, dw2_debug_abbrev, fmap->sect[debug_abbrev_sect].shdr.sh_size, dw2_debug_str, fmap->sect[debug_str_sect].shdr.sh_size, - dw2_debug_line, fmap->sect[debug_line_sect].shdr.sh_size); + dw2_debug_line, dw2_debug_line != NO_MAP ? fmap->sect[debug_line_sect].shdr.sh_size : 0); if (!lret) WARN("Couldn't correctly read stabs\n"); ret = ret || lret;