Module: wine Branch: master Commit: 9d10c66dc8db958c02058c19f532072930744e84 URL: http://source.winehq.org/git/wine.git/?a=commit;h=9d10c66dc8db958c02058c19f5...
Author: Eric Pouech eric.pouech@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, "");