[PATCH 10/10] [DbgHelp]: proper support and definition for S_REGREL_V3
Eric Pouech
eric.pouech at orange.fr
Sat Oct 9 01:51:47 CDT 2010
A+
---
dlls/dbghelp/msc.c | 14 +++++++-------
include/wine/mscvpdb.h | 6 +++---
tools/winedump/msc.c | 8 ++++----
3 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/dlls/dbghelp/msc.c b/dlls/dbghelp/msc.c
index baab45d..90e832c 100644
--- a/dlls/dbghelp/msc.c
+++ b/dlls/dbghelp/msc.c
@@ -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),
sym->stack_v3.name);
break;
- case S_BPREL_XXXX_V3:
+ case S_REGREL_V3:
loc.kind = loc_regrel;
- loc.reg = 0; /* FIXME */
- loc.offset = sym->stack_xxxx_v3.offset;
- WARN("Supposed stack variable %s (%d)\n", sym->stack_xxxx_v3.name, sym->stack_xxxx_v3.unknown);
+ loc.reg = sym->regrel_v3.reg;
+ loc.offset = sym->regrel_v3.offset;
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,
- codeview_get_type(sym->stack_xxxx_v3.symtype, FALSE),
- sym->stack_xxxx_v3.name);
+ codeview_get_type(sym->regrel_v3.symtype, FALSE),
+ sym->regrel_v3.name);
break;
case S_REGISTER_V1:
diff --git a/include/wine/mscvpdb.h b/include/wine/mscvpdb.h
index c9bdb4f..2d5b9c9 100644
--- a/include/wine/mscvpdb.h
+++ b/include/wine/mscvpdb.h
@@ -1380,9 +1380,9 @@ union codeview_symbol
short int id; /* Always S_BPREL_V3 */
int offset; /* Stack offset relative to BP */
unsigned int symtype;
- unsigned short unknown;
+ unsigned short reg;
char name[1];
- } stack_xxxx_v3;
+ } regrel_v3;
struct
{
@@ -1646,7 +1646,7 @@ union codeview_symbol
#define S_PUB_V3 0x110E
#define S_LPROC_V3 0x110F
#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_PUB_FUNC1_V3 0x1125 /* didn't get the difference between the two */
#define S_PUB_FUNC2_V3 0x1127
diff --git a/tools/winedump/msc.c b/tools/winedump/msc.c
index ccd4664..c917309 100644
--- a/tools/winedump/msc.c
+++ b/tools/winedump/msc.c
@@ -1059,10 +1059,10 @@ int codeview_dump_symbols(const void* root, unsigned long size)
sym->stack_v3.symtype, curr_func);
break;
- case S_BPREL_XXXX_V3:
- printf("\tS-BP-relative XXXX V3: '%s' @%d type:%x unkn:%x (in %s)\n",
- sym->stack_xxxx_v3.name, sym->stack_xxxx_v3.offset,
- sym->stack_xxxx_v3.symtype, sym->stack_xxxx_v3.unknown, curr_func);
+ case S_REGREL_V3:
+ printf("\tS-Reg-relative V3: '%s' @%d type:%x reg:%x (in %s)\n",
+ sym->regrel_v3.name, sym->regrel_v3.offset,
+ sym->regrel_v3.symtype, sym->regrel_v3.reg, curr_func);
break;
case S_REGISTER_V1:
More information about the wine-patches
mailing list