dbghelp:: Add proper support for S_OBJNAME records.

Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Eric Pouech 2021-08-21 10:23:00 +02:00 committed by Alexandre Julliard
parent fe9f0c7fcf
commit 9adf73be7e
3 changed files with 18 additions and 18 deletions

View File

@ -1844,23 +1844,15 @@ static BOOL codeview_snarf(const struct msc_debug_info* msc_dbg, const BYTE* roo
}
}
break;
case S_OBJNAME:
TRACE("S-Compiland-V3 %s\n", sym->compiland_v3.name);
if (TRACE_ON(dbghelp_msc))
{
const char* ptr1 = sym->compiland_v3.name + strlen(sym->compiland_v3.name);
const char* ptr2;
while (*ptr1)
{
ptr2 = ptr1 + strlen(ptr1) + 1;
TRACE("\t%s => %s\n", ptr1, debugstr_a(ptr2));
ptr1 = ptr2 + strlen(ptr2) + 1;
}
}
break;
TRACE("S-ObjName-V3 %s\n", sym->objname_v3.name);
compiland = symt_new_compiland(msc_dbg->module, 0 /* FIXME */,
source_new(msc_dbg->module, NULL,
sym->objname_v3.name));
case S_OBJNAME_ST:
TRACE("S-ObjName %s\n", terminate_string(&sym->objname_v1.p_name));
TRACE("S-ObjName-V1 %s\n", terminate_string(&sym->objname_v1.p_name));
compiland = symt_new_compiland(msc_dbg->module, 0 /* FIXME */,
source_new(msc_dbg->module, NULL,
terminate_string(&sym->objname_v1.p_name)));

View File

@ -1557,10 +1557,18 @@ union codeview_symbol
{
short int len;
short int id;
char signature[4];
unsigned signature;
struct p_string p_name;
} objname_v1;
struct
{
short int len;
short int id;
unsigned signature;
char name[1];
} objname_v3;
struct
{
short int len;

View File

@ -1352,12 +1352,12 @@ BOOL codeview_dump_symbols(const void* root, unsigned long size)
break;
case S_OBJNAME:
printf("\tS-Compiland V3 '%s' unknown:%x\n",
sym->compiland_v3.name, sym->compiland_v3.unknown);
printf("\tS-ObjName V3 sig:%x '%s'\n",
sym->objname_v3.signature, sym->objname_v3.name);
break;
case S_OBJNAME_ST:
printf("\tS-ObjName V1 sig:%.4s '%s'\n",
printf("\tS-ObjName V1 sig:%x '%s'\n",
sym->objname_v1.signature, p_string(&sym->objname_v1.p_name));
break;