dbghelp: Added full support for DW_FORM_data8 attributes, as well as primary support for DW_FORM_block* attributes.
This commit is contained in:
parent
fbef7217b9
commit
09a7e2d3d0
|
@ -139,6 +139,7 @@ struct attribute
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
unsigned long uvalue;
|
unsigned long uvalue;
|
||||||
|
ULONGLONG lluvalue;
|
||||||
long svalue;
|
long svalue;
|
||||||
const char* string;
|
const char* string;
|
||||||
struct dwarf2_block block;
|
struct dwarf2_block block;
|
||||||
|
@ -512,9 +513,8 @@ static void dwarf2_fill_attr(const dwarf2_parse_context_t* ctx,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_FORM_data8:
|
case DW_FORM_data8:
|
||||||
attr->u.block.size = 8;
|
attr->u.lluvalue = dwarf2_get_u8(data);
|
||||||
attr->u.block.ptr = data;
|
TRACE("data8<%s>\n", wine_dbgstr_longlong(attr->u.uvalue));
|
||||||
data += 8;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_FORM_ref1:
|
case DW_FORM_ref1:
|
||||||
|
@ -1480,6 +1480,11 @@ static void dwarf2_parse_variable(dwarf2_subprogram_t* subpgm,
|
||||||
v.n1.n2.n3.lVal = value.u.uvalue;
|
v.n1.n2.n3.lVal = value.u.uvalue;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case DW_FORM_data8:
|
||||||
|
v.n1.n2.vt = VT_UI8;
|
||||||
|
v.n1.n2.n3.llVal = value.u.lluvalue;
|
||||||
|
break;
|
||||||
|
|
||||||
case DW_FORM_sdata:
|
case DW_FORM_sdata:
|
||||||
v.n1.n2.vt = VT_I4;
|
v.n1.n2.vt = VT_I4;
|
||||||
v.n1.n2.n3.lVal = value.u.svalue;
|
v.n1.n2.n3.lVal = value.u.svalue;
|
||||||
|
@ -1511,12 +1516,6 @@ static void dwarf2_parse_variable(dwarf2_subprogram_t* subpgm,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DW_FORM_data8:
|
|
||||||
v.n1.n2.vt = VT_I1 | VT_BYREF;
|
|
||||||
v.n1.n2.n3.byref = pool_alloc(&subpgm->ctx->module->pool, value.u.block.size);
|
|
||||||
memcpy(v.n1.n2.n3.byref, value.u.block.ptr, value.u.block.size);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
FIXME("Unsupported form for const value %s (%lx)\n",
|
FIXME("Unsupported form for const value %s (%lx)\n",
|
||||||
name.u.string, value.form);
|
name.u.string, value.form);
|
||||||
|
|
Loading…
Reference in New Issue