Eric Pouech : winedump: Add support for derived types in codeview type info .

Alexandre Julliard julliard at wine.codeweavers.com
Sat Jan 6 05:12:52 CST 2007


Module: wine
Branch: master
Commit: 9d10c66dc8db958c02058c19f532072930744e84
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9d10c66dc8db958c02058c19f532072930744e84

Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date:   Fri Jan  5 21:43:33 2007 +0100

winedump: Add support for derived types in codeview type info.

---

 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 95de7d5..91ad8c1 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-cvs mailing list