[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