Commit 8d981b87 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp: Proper support and definition for S_REGREL_V3.

parent fac5abc5
...@@ -1669,16 +1669,16 @@ static int codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* root ...@@ -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 ...@@ -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 ...@@ -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) ...@@ -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:
......
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