[PATCH 4/5] [DbgHelp]: in dwarf parsing, correctly get the size of addresses in location lists

Eric Pouech eric.pouech at orange.fr
Wed Mar 24 16:04:12 CDT 2010




A+
---

 dlls/dbghelp/dwarf.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)


diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index ebf019d..5513bed 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -2213,8 +2213,7 @@ static BOOL dwarf2_parse_compilation_unit(const dwarf2_section_t* sections,
 }
 
 static BOOL dwarf2_lookup_loclist(const struct module_format* modfmt, const BYTE* start,
-                                  unsigned long ip,
-                                  dwarf2_traverse_context_t*  lctx)
+                                  unsigned long ip, dwarf2_traverse_context_t* lctx)
 {
     DWORD_PTR                   beg, end;
     const BYTE*                 ptr = start;
@@ -2222,8 +2221,8 @@ static BOOL dwarf2_lookup_loclist(const struct module_format* modfmt, const BYTE
 
     while (ptr < modfmt->u.dwarf2_info->debug_loc.address + modfmt->u.dwarf2_info->debug_loc.size)
     {
-        beg = dwarf2_get_u4(ptr); ptr += 4;
-        end = dwarf2_get_u4(ptr); ptr += 4;
+        beg = dwarf2_get_addr(ptr, modfmt->u.dwarf2_info->word_size); ptr += modfmt->u.dwarf2_info->word_size;
+        end = dwarf2_get_addr(ptr, modfmt->u.dwarf2_info->word_size); ptr += modfmt->u.dwarf2_info->word_size;
         if (!beg && !end) break;
         len = dwarf2_get_u2(ptr); ptr += 2;
 






More information about the wine-patches mailing list