DW_FORM_ref_udata value is an offset from current unit (as the others DW_FORM_ref[1,2,3,4] are)
Signed-off-by: Eric Pouech eric.pouech@gmail.com
--- dlls/dbghelp/dwarf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index 9d8d2756258..b62e1a2cce8 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -544,7 +544,8 @@ static void dwarf2_fill_attr(const dwarf2_parse_context_t* ctx, break;
case DW_FORM_ref_udata: - attr->u.uvalue = dwarf2_get_leb128_as_unsigned(data, NULL); + attr->u.uvalue = ctx->ref_offset + dwarf2_get_leb128_as_unsigned(data, NULL); + TRACE("ref_udata<0x%lx>\n", attr->u.uvalue); break;
case DW_FORM_udata: