dbghelp: Proper support and definition for S_REGREL_V3.
This commit is contained in:
parent
fac5abc551
commit
8d981b87f1
|
@ -1669,16 +1669,16 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root
|
||||||
codeview_get_type(sym->stack_v3.symtype, FALSE),
|
codeview_get_type(sym->stack_v3.symtype, FALSE),
|
||||||
sym->stack_v3.name);
|
sym->stack_v3.name);
|
||||||
break;
|
break;
|
||||||
case S_BPREL_XXXX_V3:
|
case S_REGREL_V3:
|
||||||
loc.kind = loc_regrel;
|
loc.kind = loc_regrel;
|
||||||
loc.reg = 0; /* FIXME */
|
loc.reg = sym->regrel_v3.reg;
|
||||||
loc.offset = sym->stack_xxxx_v3.offset;
|
loc.offset = sym->regrel_v3.offset;
|
||||||
WARN("Supposed stack variable %s (%d)\n", sym->stack_xxxx_v3.name, sym->stack_xxxx_v3.unknown);
|
|
||||||
symt_add_func_local(msc_dbg->module, curr_func,
|
symt_add_func_local(msc_dbg->module, curr_func,
|
||||||
sym->stack_xxxx_v3.offset > 0 ? DataIsParam : DataIsLocal,
|
/* FIXME this is wrong !!! */
|
||||||
|
sym->regrel_v3.offset > 0 ? DataIsParam : DataIsLocal,
|
||||||
&loc, block,
|
&loc, block,
|
||||||
codeview_get_type(sym->stack_xxxx_v3.symtype, FALSE),
|
codeview_get_type(sym->regrel_v3.symtype, FALSE),
|
||||||
sym->stack_xxxx_v3.name);
|
sym->regrel_v3.name);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case S_REGISTER_V1:
|
case S_REGISTER_V1:
|
||||||
|
|
|
@ -1380,9 +1380,9 @@ union codeview_symbol
|
||||||
short int id; /* Always S_BPREL_V3 */
|
short int id; /* Always S_BPREL_V3 */
|
||||||
int offset; /* Stack offset relative to BP */
|
int offset; /* Stack offset relative to BP */
|
||||||
unsigned int symtype;
|
unsigned int symtype;
|
||||||
unsigned short unknown;
|
unsigned short reg;
|
||||||
char name[1];
|
char name[1];
|
||||||
} stack_xxxx_v3;
|
} regrel_v3;
|
||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
@ -1646,7 +1646,7 @@ union codeview_symbol
|
||||||
#define S_PUB_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_BPREL_XXXX_V3 0x1111 /* not really understood, but looks like bprel... */
|
#define S_REGREL_V3 0x1111
|
||||||
#define S_MSTOOL_V3 0x1116 /* compiler command line options and build information */
|
#define S_MSTOOL_V3 0x1116 /* compiler command line options and build information */
|
||||||
#define S_PUB_FUNC1_V3 0x1125 /* didn't get the difference between the two */
|
#define S_PUB_FUNC1_V3 0x1125 /* didn't get the difference between the two */
|
||||||
#define S_PUB_FUNC2_V3 0x1127
|
#define S_PUB_FUNC2_V3 0x1127
|
||||||
|
|
|
@ -1059,10 +1059,10 @@ int codeview_dump_symbols(const void* root, unsigned long size)
|
||||||
sym->stack_v3.symtype, curr_func);
|
sym->stack_v3.symtype, curr_func);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case S_BPREL_XXXX_V3:
|
case S_REGREL_V3:
|
||||||
printf("\tS-BP-relative XXXX V3: '%s' @%d type:%x unkn:%x (in %s)\n",
|
printf("\tS-Reg-relative V3: '%s' @%d type:%x reg:%x (in %s)\n",
|
||||||
sym->stack_xxxx_v3.name, sym->stack_xxxx_v3.offset,
|
sym->regrel_v3.name, sym->regrel_v3.offset,
|
||||||
sym->stack_xxxx_v3.symtype, sym->stack_xxxx_v3.unknown, curr_func);
|
sym->regrel_v3.symtype, sym->regrel_v3.reg, curr_func);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case S_REGISTER_V1:
|
case S_REGISTER_V1:
|
||||||
|
|
Loading…
Reference in New Issue