mscvpdb.h: Update some definitions (constants, structures) with latest information we have.

This commit is contained in:
Eric Pouech 2006-11-29 21:40:43 +01:00 committed by Alexandre Julliard
parent cc65d21f82
commit 0bee33e195
2 changed files with 102 additions and 26 deletions

View File

@ -1454,16 +1454,16 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root
}
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)
{
@ -1473,11 +1473,11 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root
}
}
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)
{
@ -1622,7 +1622,7 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root
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,

View File

@ -343,7 +343,7 @@ union codeview_type
{
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;
@ -537,6 +537,14 @@ union codeview_fieldtype
struct p_string p_name;
} stmember_v2;
struct
{
short int id;
short int attribute;
unsigned int type;
char name[1];
} stmember_v3;
struct
{
short int id;
@ -556,7 +564,15 @@ union codeview_fieldtype
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,10 +580,18 @@ union codeview_fieldtype
{
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;
@ -602,6 +626,22 @@ union codeview_fieldtype
struct p_string p_name;
} onemethod_v1;
struct
{
short int id;
short int attribute;
unsigned int type;
struct p_string p_name;
} onemethod_v2;
struct
{
short int id;
short int attribute;
unsigned int type;
char name[1];
} onemethod_v3;
struct
{
short int id;
@ -616,8 +656,9 @@ union codeview_fieldtype
short int id;
short int attribute;
unsigned int type;
unsigned int vtab_offset;
struct p_string p_name;
} onemethod_v2;
} onemethod_virt_v2;
struct
{
@ -625,8 +666,8 @@ union codeview_fieldtype
short int attribute;
unsigned int type;
unsigned int vtab_offset;
struct p_string p_name;
} onemethod_virt_v2;
char name[1];
} onemethod_virt_v3;
struct
{
@ -647,7 +688,7 @@ union codeview_fieldtype
{
short int id;
short int attribute;
short int index;
short int type;
struct p_string p_name;
} nesttypeex_v1;
@ -655,7 +696,7 @@ union codeview_fieldtype
{
short int id;
short int attribute;
unsigned int index;
unsigned int type;
struct p_string p_name;
} nesttypeex_v2;
@ -817,6 +858,10 @@ union codeview_fieldtype
#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
@ -958,6 +1003,26 @@ union codeview_symbol
char name[1];
} proc_v3;
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 */
@ -1005,6 +1070,16 @@ union codeview_symbol
/* don't handle register tracking */
} register_v2;
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;
@ -1120,7 +1195,7 @@ union codeview_symbol
short int id;
unsigned int unknown;
struct p_string p_name;
} compile_v1;
} compiland_v1;
struct
{
@ -1129,7 +1204,7 @@ union codeview_symbol
unsigned unknown1[4];
unsigned short unknown2;
struct p_string p_name;
} compile_v2;
} compiland_v2;
struct
{
@ -1137,7 +1212,7 @@ union codeview_symbol
short int id;
unsigned int unknown;
char name[1];
} compile_v3;
} compiland_v3;
struct
{
@ -1148,7 +1223,7 @@ union codeview_symbol
} 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 @@ union codeview_symbol
#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 */