Eric Pouech : winedump: Add support for dumping heap_alloc_site CodeView records.

Alexandre Julliard julliard at winehq.org
Tue Aug 24 15:56:12 CDT 2021


Module: wine
Branch: master
Commit: d6aff64ccf6bb15c065b3442f2de0c010198472d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d6aff64ccf6bb15c065b3442f2de0c010198472d

Author: Eric Pouech <eric.pouech at gmail.com>
Date:   Tue Aug 24 11:12:14 2021 +0200

winedump: Add support for dumping heap_alloc_site CodeView records.

Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dbghelp/msc.c     | 6 +++---
 include/wine/mscvpdb.h | 4 ++--
 tools/winedump/msc.c   | 9 +++++++++
 3 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c
index f77592664ef..6d623f336ed 100644
--- a/dlls/dbghelp/msc.c
+++ b/dlls/dbghelp/msc.c
@@ -1993,9 +1993,9 @@ static BOOL codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* roo
             TRACE("S-Align V1\n");
             break;
         case S_HEAPALLOCSITE:
-            TRACE("heap site: offset=0x%08x at sect_idx 0x%04x, inst_len 0x%08x, index 0x%08x\n",
-                    sym->heap_alloc_site.offset, sym->heap_alloc_site.sect_idx,
-                    sym->heap_alloc_site.inst_len, sym->heap_alloc_site.index);
+            TRACE("S-heap site V3: offset=0x%08x at sect_idx 0x%04x, inst_len 0x%08x, index 0x%08x\n",
+                  sym->heap_alloc_site_v3.offset, sym->heap_alloc_site_v3.sect_idx,
+                  sym->heap_alloc_site_v3.inst_len, sym->heap_alloc_site_v3.index);
             break;
 
         /* the symbols we can safely ignore for now */
diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h
index 42455cbd0fe..766f20d2732 100644
--- a/include/wine/mscvpdb.h
+++ b/include/wine/mscvpdb.h
@@ -1751,8 +1751,8 @@ union codeview_symbol
         unsigned int            offset;
         unsigned short          sect_idx;
         unsigned short          inst_len;
-        unsigned int            index;
-    } heap_alloc_site;
+        cv_typ_t                index;
+    } heap_alloc_site_v3;
 
     struct
     {
diff --git a/tools/winedump/msc.c b/tools/winedump/msc.c
index f5d2d15774d..62152ed6ea0 100644
--- a/tools/winedump/msc.c
+++ b/tools/winedump/msc.c
@@ -1791,6 +1791,15 @@ BOOL codeview_dump_symbols(const void* root, unsigned long size)
                     printf("\t\tfunc:%x invoc:%u\n", sym->function_list_v3.funcs[i], i < ninvoc ? invoc[i] : 0);
             }
             break;
+
+        case S_HEAPALLOCSITE:
+            printf("Heap-alloc-site V3 %04x:%08x#%x type:%04x\n",
+                   sym->heap_alloc_site_v3.sect_idx,
+                   sym->heap_alloc_site_v3.offset,
+                   sym->heap_alloc_site_v3.inst_len,
+                   sym->heap_alloc_site_v3.index);
+            break;
+
         default:
             printf("\n\t\t>>> Unsupported symbol-id %x sz=%d\n", sym->generic.id, sym->generic.len + 2);
             dump_data((const void*)sym, sym->generic.len + 2, "  ");




More information about the wine-cvs mailing list