[PATCH 08/10] [mscvpdb.h]: updates
Eric Pouech
eric.pouech at wanadoo.fr
Wed Nov 29 14:40:43 CST 2006
- updates some definitions (constants, structures) with
latest information we have
A+
---
dlls/dbghelp/msc.c | 20 ++++-----
include/wine/mscvpdb.h | 108 +++++++++++++++++++++++++++++++++++++++++-------
2 files changed, 102 insertions(+), 26 deletions(-)
diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c
index d2c50ec..4c51ec3 100644
--- a/dlls/dbghelp/msc.c
+++ b/dlls/dbghelp/msc.c
@@ -1460,16 +1460,16 @@ static int codeview_snarf(const struct m
}
break;
- case S_COMPILE_V1:
- TRACE("S-Compile-V1 %x %s\n",
- sym->compile_v1.unknown, terminate_string(&sym->compile_v1.p_name));
+ case S_COMPILAND_V1:
+ TRACE("S-Compiland-V1 %x %s\n",
+ sym->compiland_v1.unknown, terminate_string(&sym->compiland_v1.p_name));
break;
- case S_COMPILE_V2:
- TRACE("S-Compile-V2 %s\n", terminate_string(&sym->compile_v2.p_name));
+ case S_COMPILAND_V2:
+ TRACE("S-Compiland-V2 %s\n", terminate_string(&sym->compiland_v2.p_name));
if (TRACE_ON(dbghelp_msc))
{
- const char* ptr1 = sym->compile_v2.p_name.name + sym->compile_v2.p_name.namelen;
+ const char* ptr1 = sym->compiland_v2.p_name.name + sym->compiland_v2.p_name.namelen;
const char* ptr2;
while (*ptr1)
{
@@ -1479,11 +1479,11 @@ static int codeview_snarf(const struct m
}
}
break;
- case S_COMPILE_V3:
- TRACE("S-Compile-V3 %s\n", sym->compile_v3.name);
+ case S_COMPILAND_V3:
+ TRACE("S-Compiland-V3 %s\n", sym->compiland_v3.name);
if (TRACE_ON(dbghelp_msc))
{
- const char* ptr1 = sym->compile_v3.name + strlen(sym->compile_v3.name);
+ const char* ptr1 = sym->compiland_v3.name + strlen(sym->compiland_v3.name);
const char* ptr2;
while (*ptr1)
{
@@ -1624,7 +1624,7 @@ static int codeview_snarf(const struct m
length += (*name + 1 + 3) & ~3;
break;
- case S_PUB_DATA_V3:
+ case S_PUB_V3:
if (!(dbghelp_options & SYMOPT_NO_PUBLICS))
{
symt_new_public(msc_dbg->module, compiland,
diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h
index 1bc2b7b..b37711c 100644
--- a/include/wine/mscvpdb.h
+++ b/include/wine/mscvpdb.h
@@ -343,7 +343,7 @@ #endif
{
unsigned short int len;
short int id;
- unsigned unknown1; /* could be this_type ??? */
+ unsigned this_type;
unsigned int class_type;
unsigned int rvtype;
unsigned char call;
@@ -540,6 +540,14 @@ #endif
struct
{
short int id;
+ short int attribute;
+ unsigned int type;
+ char name[1];
+ } stmember_v3;
+
+ struct
+ {
+ short int id;
short int count;
short int mlist;
struct p_string p_name;
@@ -556,7 +564,15 @@ #endif
struct
{
short int id;
- short int index;
+ short int count;
+ unsigned int mlist;
+ char name[1];
+ } method_v3;
+
+ struct
+ {
+ short int id;
+ short int type;
struct p_string p_name;
} nesttype_v1;
@@ -564,13 +580,21 @@ #endif
{
short int id;
short int _pad0;
- unsigned int index;
+ unsigned int type;
struct p_string p_name;
} nesttype_v2;
struct
{
short int id;
+ short int _pad0;
+ unsigned int type;
+ char name[1];
+ } nesttype_v3;
+
+ struct
+ {
+ short int id;
short int type;
} vfunctab_v1;
@@ -606,18 +630,26 @@ #endif
{
short int id;
short int attribute;
- short int type;
- unsigned int vtab_offset;
+ unsigned int type;
struct p_string p_name;
- } onemethod_virt_v1;
+ } onemethod_v2;
struct
{
short int id;
short int attribute;
unsigned int type;
+ char name[1];
+ } onemethod_v3;
+
+ struct
+ {
+ short int id;
+ short int attribute;
+ short int type;
+ unsigned int vtab_offset;
struct p_string p_name;
- } onemethod_v2;
+ } onemethod_virt_v1;
struct
{
@@ -631,6 +663,15 @@ #endif
struct
{
short int id;
+ short int attribute;
+ unsigned int type;
+ unsigned int vtab_offset;
+ char name[1];
+ } onemethod_virt_v3;
+
+ struct
+ {
+ short int id;
short int type;
unsigned int offset;
} vfuncoff_v1;
@@ -647,7 +688,7 @@ #endif
{
short int id;
short int attribute;
- short int index;
+ short int type;
struct p_string p_name;
} nesttypeex_v1;
@@ -655,7 +696,7 @@ #endif
{
short int id;
short int attribute;
- unsigned int index;
+ unsigned int type;
struct p_string p_name;
} nesttypeex_v2;
@@ -817,6 +858,10 @@ #define LF_STRUCTURE_V3 0x1505
#define LF_UNION_V3 0x1506
#define LF_ENUM_V3 0x1507
#define LF_MEMBER_V3 0x150d
+#define LF_STMEMBER_V3 0x150e
+#define LF_METHOD_V3 0x150f
+#define LF_NESTTYPE_V3 0x1510
+#define LF_ONEMETHOD_V3 0x1511
#define LF_NUMERIC 0x8000 /* numeric leaf types */
#define LF_CHAR 0x8000
@@ -960,6 +1005,26 @@ union codeview_symbol
struct
{
+ short int len;
+ short int id;
+ unsigned int symtype;
+ unsigned int offset;
+ unsigned short segment;
+ struct p_string p_name;
+ } public_v2;
+
+ struct
+ {
+ short int len;
+ short int id;
+ unsigned int symtype;
+ unsigned int offset;
+ unsigned short segment;
+ char name[1];
+ } public_v3;
+
+ struct
+ {
short int len; /* Total length of this entry */
short int id; /* Always S_BPREL_V1 */
unsigned int offset; /* Stack offset relative to BP */
@@ -1007,6 +1072,16 @@ union codeview_symbol
struct
{
+ short int len; /* Total length of this entry */
+ short int id; /* Always S_REGISTER_V3 */
+ unsigned int type; /* check whether type & reg are correct */
+ unsigned short reg;
+ char name[1];
+ /* don't handle register tracking */
+ } register_v3;
+
+ struct
+ {
short int len;
short int id;
unsigned int parent;
@@ -1120,7 +1195,7 @@ #endif
short int id;
unsigned int unknown;
struct p_string p_name;
- } compile_v1;
+ } compiland_v1;
struct
{
@@ -1129,7 +1204,7 @@ #endif
unsigned unknown1[4];
unsigned short unknown2;
struct p_string p_name;
- } compile_v2;
+ } compiland_v2;
struct
{
@@ -1137,7 +1212,7 @@ #endif
short int id;
unsigned int unknown;
char name[1];
- } compile_v3;
+ } compiland_v3;
struct
{
@@ -1148,7 +1223,7 @@ #endif
} ssearch_v1;
};
-#define S_COMPILE_V1 0x0001
+#define S_COMPILAND_V1 0x0001
#define S_REGISTER_V1 0x0002
#define S_CONSTANT_V1 0x0003
#define S_UDT_V1 0x0004
@@ -1202,18 +1277,19 @@ #define S_GTHREAD_V2 0x100f
#if 0
#define S_XXXXXXXXX_32 0x1012 /* seems linked to a function, content unknown */
#endif
-#define S_COMPILE_V2 0x1013
+#define S_COMPILAND_V2 0x1013
-#define S_COMPILE_V3 0x1101
+#define S_COMPILAND_V3 0x1101
#define S_THUNK_V3 0x1102
#define S_BLOCK_V3 0x1103
#define S_LABEL_V3 0x1105
+#define S_REGISTER_V3 0x1106
#define S_CONSTANT_V3 0x1107
#define S_UDT_V3 0x1108
#define S_BPREL_V3 0x110B
#define S_LDATA_V3 0x110C
#define S_GDATA_V3 0x110D
-#define S_PUB_DATA_V3 0x110E
+#define S_PUB_V3 0x110E
#define S_LPROC_V3 0x110F
#define S_GPROC_V3 0x1110
#define S_MSTOOL_V3 0x1116 /* not really understood */
More information about the wine-patches
mailing list