Commit 0bee33e1 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

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

parent cc65d21f
...@@ -1454,16 +1454,16 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root ...@@ -1454,16 +1454,16 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root
} }
break; break;
case S_COMPILE_V1: case S_COMPILAND_V1:
TRACE("S-Compile-V1 %x %s\n", TRACE("S-Compiland-V1 %x %s\n",
sym->compile_v1.unknown, terminate_string(&sym->compile_v1.p_name)); sym->compiland_v1.unknown, terminate_string(&sym->compiland_v1.p_name));
break; break;
case S_COMPILE_V2: case S_COMPILAND_V2:
TRACE("S-Compile-V2 %s\n", terminate_string(&sym->compile_v2.p_name)); TRACE("S-Compiland-V2 %s\n", terminate_string(&sym->compiland_v2.p_name));
if (TRACE_ON(dbghelp_msc)) 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; const char* ptr2;
while (*ptr1) while (*ptr1)
{ {
...@@ -1473,11 +1473,11 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root ...@@ -1473,11 +1473,11 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root
} }
} }
break; break;
case S_COMPILE_V3: case S_COMPILAND_V3:
TRACE("S-Compile-V3 %s\n", sym->compile_v3.name); TRACE("S-Compiland-V3 %s\n", sym->compiland_v3.name);
if (TRACE_ON(dbghelp_msc)) 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; const char* ptr2;
while (*ptr1) while (*ptr1)
{ {
...@@ -1622,7 +1622,7 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root ...@@ -1622,7 +1622,7 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root
length += (*name + 1 + 3) & ~3; length += (*name + 1 + 3) & ~3;
break; break;
case S_PUB_DATA_V3: case S_PUB_V3:
if (!(dbghelp_options & SYMOPT_NO_PUBLICS)) if (!(dbghelp_options & SYMOPT_NO_PUBLICS))
{ {
symt_new_public(msc_dbg->module, compiland, symt_new_public(msc_dbg->module, compiland,
......
...@@ -343,7 +343,7 @@ union codeview_type ...@@ -343,7 +343,7 @@ union codeview_type
{ {
unsigned short int len; unsigned short int len;
short int id; short int id;
unsigned unknown1; /* could be this_type ??? */ unsigned this_type;
unsigned int class_type; unsigned int class_type;
unsigned int rvtype; unsigned int rvtype;
unsigned char call; unsigned char call;
...@@ -540,6 +540,14 @@ union codeview_fieldtype ...@@ -540,6 +540,14 @@ union codeview_fieldtype
struct struct
{ {
short int id; short int id;
short int attribute;
unsigned int type;
char name[1];
} stmember_v3;
struct
{
short int id;
short int count; short int count;
short int mlist; short int mlist;
struct p_string p_name; struct p_string p_name;
...@@ -556,7 +564,15 @@ union codeview_fieldtype ...@@ -556,7 +564,15 @@ union codeview_fieldtype
struct struct
{ {
short int id; 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; struct p_string p_name;
} nesttype_v1; } nesttype_v1;
...@@ -564,13 +580,21 @@ union codeview_fieldtype ...@@ -564,13 +580,21 @@ union codeview_fieldtype
{ {
short int id; short int id;
short int _pad0; short int _pad0;
unsigned int index; unsigned int type;
struct p_string p_name; struct p_string p_name;
} nesttype_v2; } nesttype_v2;
struct struct
{ {
short int id; short int id;
short int _pad0;
unsigned int type;
char name[1];
} nesttype_v3;
struct
{
short int id;
short int type; short int type;
} vfunctab_v1; } vfunctab_v1;
...@@ -606,18 +630,26 @@ union codeview_fieldtype ...@@ -606,18 +630,26 @@ union codeview_fieldtype
{ {
short int id; short int id;
short int attribute; short int attribute;
short int type; unsigned int type;
unsigned int vtab_offset;
struct p_string p_name; struct p_string p_name;
} onemethod_virt_v1; } onemethod_v2;
struct struct
{ {
short int id; short int id;
short int attribute; short int attribute;
unsigned int type; 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; struct p_string p_name;
} onemethod_v2; } onemethod_virt_v1;
struct struct
{ {
...@@ -631,6 +663,15 @@ union codeview_fieldtype ...@@ -631,6 +663,15 @@ union codeview_fieldtype
struct struct
{ {
short int id; 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; short int type;
unsigned int offset; unsigned int offset;
} vfuncoff_v1; } vfuncoff_v1;
...@@ -647,7 +688,7 @@ union codeview_fieldtype ...@@ -647,7 +688,7 @@ union codeview_fieldtype
{ {
short int id; short int id;
short int attribute; short int attribute;
short int index; short int type;
struct p_string p_name; struct p_string p_name;
} nesttypeex_v1; } nesttypeex_v1;
...@@ -655,7 +696,7 @@ union codeview_fieldtype ...@@ -655,7 +696,7 @@ union codeview_fieldtype
{ {
short int id; short int id;
short int attribute; short int attribute;
unsigned int index; unsigned int type;
struct p_string p_name; struct p_string p_name;
} nesttypeex_v2; } nesttypeex_v2;
...@@ -817,6 +858,10 @@ union codeview_fieldtype ...@@ -817,6 +858,10 @@ union codeview_fieldtype
#define LF_UNION_V3 0x1506 #define LF_UNION_V3 0x1506
#define LF_ENUM_V3 0x1507 #define LF_ENUM_V3 0x1507
#define LF_MEMBER_V3 0x150d #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_NUMERIC 0x8000 /* numeric leaf types */
#define LF_CHAR 0x8000 #define LF_CHAR 0x8000
...@@ -960,6 +1005,26 @@ union codeview_symbol ...@@ -960,6 +1005,26 @@ union codeview_symbol
struct 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 len; /* Total length of this entry */
short int id; /* Always S_BPREL_V1 */ short int id; /* Always S_BPREL_V1 */
unsigned int offset; /* Stack offset relative to BP */ unsigned int offset; /* Stack offset relative to BP */
...@@ -1007,6 +1072,16 @@ union codeview_symbol ...@@ -1007,6 +1072,16 @@ union codeview_symbol
struct 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 len;
short int id; short int id;
unsigned int parent; unsigned int parent;
...@@ -1120,7 +1195,7 @@ union codeview_symbol ...@@ -1120,7 +1195,7 @@ union codeview_symbol
short int id; short int id;
unsigned int unknown; unsigned int unknown;
struct p_string p_name; struct p_string p_name;
} compile_v1; } compiland_v1;
struct struct
{ {
...@@ -1129,7 +1204,7 @@ union codeview_symbol ...@@ -1129,7 +1204,7 @@ union codeview_symbol
unsigned unknown1[4]; unsigned unknown1[4];
unsigned short unknown2; unsigned short unknown2;
struct p_string p_name; struct p_string p_name;
} compile_v2; } compiland_v2;
struct struct
{ {
...@@ -1137,7 +1212,7 @@ union codeview_symbol ...@@ -1137,7 +1212,7 @@ union codeview_symbol
short int id; short int id;
unsigned int unknown; unsigned int unknown;
char name[1]; char name[1];
} compile_v3; } compiland_v3;
struct struct
{ {
...@@ -1148,7 +1223,7 @@ union codeview_symbol ...@@ -1148,7 +1223,7 @@ union codeview_symbol
} ssearch_v1; } ssearch_v1;
}; };
#define S_COMPILE_V1 0x0001 #define S_COMPILAND_V1 0x0001
#define S_REGISTER_V1 0x0002 #define S_REGISTER_V1 0x0002
#define S_CONSTANT_V1 0x0003 #define S_CONSTANT_V1 0x0003
#define S_UDT_V1 0x0004 #define S_UDT_V1 0x0004
...@@ -1202,18 +1277,19 @@ union codeview_symbol ...@@ -1202,18 +1277,19 @@ union codeview_symbol
#if 0 #if 0
#define S_XXXXXXXXX_32 0x1012 /* seems linked to a function, content unknown */ #define S_XXXXXXXXX_32 0x1012 /* seems linked to a function, content unknown */
#endif #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_THUNK_V3 0x1102
#define S_BLOCK_V3 0x1103 #define S_BLOCK_V3 0x1103
#define S_LABEL_V3 0x1105 #define S_LABEL_V3 0x1105
#define S_REGISTER_V3 0x1106
#define S_CONSTANT_V3 0x1107 #define S_CONSTANT_V3 0x1107
#define S_UDT_V3 0x1108 #define S_UDT_V3 0x1108
#define S_BPREL_V3 0x110B #define S_BPREL_V3 0x110B
#define S_LDATA_V3 0x110C #define S_LDATA_V3 0x110C
#define S_GDATA_V3 0x110D #define S_GDATA_V3 0x110D
#define S_PUB_DATA_V3 0x110E #define S_PUB_V3 0x110E
#define S_LPROC_V3 0x110F #define S_LPROC_V3 0x110F
#define S_GPROC_V3 0x1110 #define S_GPROC_V3 0x1110
#define S_MSTOOL_V3 0x1116 /* not really understood */ #define S_MSTOOL_V3 0x1116 /* not really understood */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment