dbghelp: Ensure the stab_nlist structure is usable on 64bit systems.
This commit is contained in:
parent
854379bbaa
commit
fac5abc551
|
@ -110,16 +110,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp_stabs);
|
|||
|
||||
struct stab_nlist
|
||||
{
|
||||
union
|
||||
{
|
||||
char* n_name;
|
||||
struct stab_nlist* n_next;
|
||||
long n_strx;
|
||||
} n_un;
|
||||
unsigned n_strx;
|
||||
unsigned char n_type;
|
||||
char n_other;
|
||||
short n_desc;
|
||||
unsigned long n_value;
|
||||
unsigned n_value;
|
||||
};
|
||||
|
||||
static void stab_strcpy(char* dest, int sz, const char* source)
|
||||
|
@ -1315,7 +1310,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
|
|||
stabbuff[0] = '\0';
|
||||
for (i = 0; i < nstab; i++, stab_ptr++)
|
||||
{
|
||||
ptr = strs + stab_ptr->n_un.n_strx;
|
||||
ptr = strs + stab_ptr->n_strx;
|
||||
if ((ptr > strs_end) || (ptr + strlen(ptr) > strs_end))
|
||||
{
|
||||
WARN("Bad stabs string %p\n", ptr);
|
||||
|
@ -1421,7 +1416,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
|
|||
loc.reg = 0; /* FIXME */
|
||||
loc.offset = stab_ptr->n_value;
|
||||
symt_add_func_local(module, curr_func,
|
||||
(long)stab_ptr->n_value >= 0 ? DataIsParam : DataIsLocal,
|
||||
(int)stab_ptr->n_value >= 0 ? DataIsParam : DataIsLocal,
|
||||
&loc, NULL, param_type, symname);
|
||||
symt_add_function_signature_parameter(module,
|
||||
(struct symt_function_signature*)curr_func->type,
|
||||
|
@ -1471,7 +1466,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
|
|||
case 35:
|
||||
case 36: loc.reg = CV_REG_MM0 + stab_ptr->n_value - 29; break;
|
||||
default:
|
||||
FIXME("Unknown register value (%lu)\n", stab_ptr->n_value);
|
||||
FIXME("Unknown register value (%u)\n", stab_ptr->n_value);
|
||||
loc.reg = CV_REG_NONE;
|
||||
break;
|
||||
}
|
||||
|
@ -1617,7 +1612,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
|
|||
case N_EXCL:
|
||||
if (stabs_add_include(stabs_find_include(ptr, stab_ptr->n_value)) < 0)
|
||||
{
|
||||
ERR("Excluded header not found (%s,%ld)\n", ptr, stab_ptr->n_value);
|
||||
ERR("Excluded header not found (%s,%d)\n", ptr, stab_ptr->n_value);
|
||||
module_reset_debug_info(module);
|
||||
ret = FALSE;
|
||||
goto done;
|
||||
|
@ -1663,8 +1658,8 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
|
|||
break;
|
||||
}
|
||||
stabbuff[0] = '\0';
|
||||
TRACE("0x%02x %lx %s\n",
|
||||
stab_ptr->n_type, stab_ptr->n_value, debugstr_a(strs + stab_ptr->n_un.n_strx));
|
||||
TRACE("0x%02x %x %s\n",
|
||||
stab_ptr->n_type, stab_ptr->n_value, debugstr_a(strs + stab_ptr->n_strx));
|
||||
}
|
||||
module->module.SymType = SymDia;
|
||||
module->module.CVSig = 'S' | ('T' << 8) | ('A' << 16) | ('B' << 24);
|
||||
|
|
Loading…
Reference in New Issue