[PATCH 12/12] [WineDump]: added support for derived types in codeview type info

Eric Pouech eric.pouech at wanadoo.fr
Fri Jan 5 14:43:33 CST 2007




A+
---

 include/wine/mscvpdb.h |   15 +++++++++++++++
 tools/winedump/msc.c   |   18 ++++++++++++++++++
 2 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h
index abbd539..1aa70a8 100644
--- a/include/wine/mscvpdb.h
+++ b/include/wine/mscvpdb.h
@@ -403,6 +403,21 @@ union codeview_reftype
         unsigned                args[1];
     } arglist_v2;
 
+    struct
+    {
+        unsigned short int      len;
+        short int               id;
+        unsigned short          num;
+        unsigned short          drvdcls[1];
+    } derived_v1;
+
+    struct
+    {
+        unsigned short int      len;
+        short int               id;
+        unsigned                num;
+        unsigned                drvdcls[1];
+    } derived_v2;
 };
 
 union codeview_fieldtype
diff --git a/tools/winedump/msc.c b/tools/winedump/msc.c
index 00e690a..c9d88cf 100644
--- a/tools/winedump/msc.c
+++ b/tools/winedump/msc.c
@@ -775,6 +775,24 @@ static void codeview_dump_one_type(unsig
         }
         break;
 
+    case LF_DERIVED_V1:
+        printf("\t%x => Derived V1(#%u):", curr_type, reftype->derived_v1.num);
+        for (i = 0; i < reftype->derived_v1.num; i++)
+        {
+            printf(" %x", reftype->derived_v1.drvdcls[i]);
+        }
+        printf("\n");
+        break;
+
+    case LF_DERIVED_V2:
+        printf("\t%x => Derived V2(#%u):", curr_type, reftype->derived_v2.num);
+        for (i = 0; i < reftype->derived_v2.num; i++)
+        {
+            printf(" %x", reftype->derived_v2.drvdcls[i]);
+        }
+        printf("\n");
+        break;
+
     default:
         printf(">>> Unsupported type-id %x for %x\n", type->generic.id, curr_type);
         dump_data((const void*)type, type->generic.len + 2, "");



More information about the wine-patches mailing list