Eric Pouech : winedump: Define and dump POGO codeview record.

Alexandre Julliard julliard at winehq.org
Mon Nov 15 16:01:29 CST 2021


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

Author: Eric Pouech <eric.pouech at gmail.com>
Date:   Mon Nov 15 18:25:28 2021 +0100

winedump: Define and dump POGO codeview record.

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

---

 include/wine/mscvpdb.h | 10 ++++++++++
 tools/winedump/msc.c   |  6 ++++++
 2 files changed, 16 insertions(+)

diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h
index b0021ed3c25..5a09b9653a3 100644
--- a/include/wine/mscvpdb.h
+++ b/include/wine/mscvpdb.h
@@ -2024,6 +2024,16 @@ union codeview_symbol
         unsigned short int      csz; /* number of bytes in following array */
         char                    rgsz[1]; /* array of null terminated strings (bounded by csz) */
     } annotation_v3;
+
+    struct
+    {
+        unsigned short int      len;
+        unsigned short int      id;
+        unsigned int            invocations;
+        __int64                 dynCount;
+        unsigned                numInstrs;
+        unsigned                staInstLive;
+    } pogoinfo_v3;
 };
 
 enum BinaryAnnotationOpcode
diff --git a/tools/winedump/msc.c b/tools/winedump/msc.c
index 0fbcc3dba80..f0856b2a6a2 100644
--- a/tools/winedump/msc.c
+++ b/tools/winedump/msc.c
@@ -1949,6 +1949,12 @@ BOOL codeview_dump_symbols(const void* root, unsigned long start, unsigned long
             }
             break;
 
+        case S_POGODATA:
+            printf("PogoData V3 inv:%d dynCnt:%lld inst:%d staInst:%d\n",
+                   sym->pogoinfo_v3.invocations, (long long)sym->pogoinfo_v3.dynCount,
+                   sym->pogoinfo_v3.numInstrs, sym->pogoinfo_v3.staInstLive);
+            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