Eric Pouech : dbghelp: Added full support for DW_FORM_data8 attributes, as well as primary support for DW_FORM_block* attributes.
Alexandre Julliard
julliard at winehq.org
Tue Mar 16 11:49:21 CDT 2010
Module: wine
Branch: master
Commit: 09a7e2d3d0ed226cf3d4a410112596873770c7e1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=09a7e2d3d0ed226cf3d4a410112596873770c7e1
Author: Eric Pouech <eric.pouech at orange.fr>
Date: Mon Mar 15 21:12:22 2010 +0100
dbghelp: Added full support for DW_FORM_data8 attributes, as well as primary support for DW_FORM_block* attributes.
---
dlls/dbghelp/dwarf.c | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 433dca8..81a1333 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -139,6 +139,7 @@ struct attribute
union
{
unsigned long uvalue;
+ ULONGLONG lluvalue;
long svalue;
const char* string;
struct dwarf2_block block;
@@ -512,9 +513,8 @@ static void dwarf2_fill_attr(const dwarf2_parse_context_t* ctx,
break;
case DW_FORM_data8:
- attr->u.block.size = 8;
- attr->u.block.ptr = data;
- data += 8;
+ attr->u.lluvalue = dwarf2_get_u8(data);
+ TRACE("data8<%s>\n", wine_dbgstr_longlong(attr->u.uvalue));
break;
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;
break;
+ case DW_FORM_data8:
+ v.n1.n2.vt = VT_UI8;
+ v.n1.n2.n3.llVal = value.u.lluvalue;
+ break;
+
case DW_FORM_sdata:
v.n1.n2.vt = VT_I4;
v.n1.n2.n3.lVal = value.u.svalue;
@@ -1511,12 +1516,6 @@ static void dwarf2_parse_variable(dwarf2_subprogram_t* subpgm,
}
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:
FIXME("Unsupported form for const value %s (%lx)\n",
name.u.string, value.form);
More information about the wine-cvs
mailing list