winedump: Fix public and data/proc ref definitions of Codeview records.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
84b0bd4583
commit
bf6ac26f75
|
@ -2077,7 +2077,7 @@ static BOOL codeview_snarf_public(const struct msc_debug_info* msc_dbg, const BY
|
|||
{
|
||||
symt_new_public(msc_dbg->module, compiland,
|
||||
sym->public_v3.name,
|
||||
sym->public_v3.symtype == SYMTYPE_FUNCTION,
|
||||
sym->public_v3.pubsymflags == SYMTYPE_FUNCTION,
|
||||
codeview_get_address(msc_dbg, sym->public_v3.segment, sym->public_v3.offset), 1);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -1386,7 +1386,7 @@ union codeview_symbol
|
|||
{
|
||||
unsigned short int len;
|
||||
unsigned short int id;
|
||||
cv_typ_t symtype;
|
||||
unsigned int pubsymflags;
|
||||
unsigned int offset;
|
||||
unsigned short segment;
|
||||
char name[1];
|
||||
|
@ -1679,6 +1679,16 @@ union codeview_symbol
|
|||
char name[1];
|
||||
} thread_v3;
|
||||
|
||||
struct
|
||||
{
|
||||
unsigned short int len;
|
||||
unsigned short int id;
|
||||
unsigned int sumName;
|
||||
unsigned int ibSym;
|
||||
unsigned short imod;
|
||||
char name[1];
|
||||
} refsym2_v3;
|
||||
|
||||
struct
|
||||
{
|
||||
unsigned short int len;
|
||||
|
|
|
@ -1142,15 +1142,23 @@ BOOL codeview_dump_symbols(const void* root, unsigned long size)
|
|||
break;
|
||||
|
||||
case S_PUB32:
|
||||
/* not completely sure of those two anyway */
|
||||
printf("\tS-Public V3 '%s' %04x:%08x flags%s%s%s%s\n",
|
||||
get_symbol_str(sym->public_v3.name),
|
||||
sym->public_v3.segment, sym->public_v3.offset,
|
||||
(sym->public_v3.pubsymflags & 1) ? "-code" : "",
|
||||
(sym->public_v3.pubsymflags & 2) ? "-func" : "",
|
||||
(sym->public_v3.pubsymflags & 4) ? "-manage" : "",
|
||||
(sym->public_v3.pubsymflags & 8) ? "-msil" : "");
|
||||
break;
|
||||
|
||||
case S_DATAREF:
|
||||
case S_PROCREF:
|
||||
case S_LPROCREF:
|
||||
printf("\tS-Public%s V3 '%s' %04x:%08x type:%08x\n",
|
||||
sym->generic.id == S_PUB32 ? "" :
|
||||
(sym->generic.id == S_PROCREF ? "<subkind1" : "<subkind2"),
|
||||
get_symbol_str(sym->public_v3.name),
|
||||
sym->public_v3.segment,
|
||||
sym->public_v3.offset, sym->public_v3.symtype);
|
||||
printf("\tS-%sref V3 '%s' mod:%04x sym:%08x name:%08x\n",
|
||||
sym->generic.id == S_DATAREF ? "Data" :
|
||||
(sym->generic.id == S_PROCREF ? "Proc" : "Lproc"),
|
||||
get_symbol_str(sym->refsym2_v3.name),
|
||||
sym->refsym2_v3.imod, sym->refsym2_v3.ibSym, sym->refsym2_v3.sumName);
|
||||
break;
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue