Module: wine Branch: master Commit: 40877456ea0c7a959acca92631d1f1b8c89786f7 URL: https://source.winehq.org/git/wine.git/?a=commit;h=40877456ea0c7a959acca9263...
Author: Eric Pouech eric.pouech@gmail.com Date: Sat Sep 11 10:59:12 2021 +0200
dbghelp/dwarf: Add support for FORM_exprloc.
Signed-off-by: Eric Pouech eric.pouech@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dbghelp/dwarf.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c index a9a72ee6566..b7df7f108d9 100644 --- a/dlls/dbghelp/dwarf.c +++ b/dlls/dbghelp/dwarf.c @@ -495,6 +495,7 @@ static void dwarf2_swallow_attribute(dwarf2_traverse_context_t* ctx, case DW_FORM_ref_udata: case DW_FORM_udata: step = dwarf2_leb128_length(ctx); break; case DW_FORM_string: step = strlen((const char*)ctx->data) + 1; break; + case DW_FORM_exprloc: case DW_FORM_block: step = dwarf2_leb128_as_unsigned(ctx); break; case DW_FORM_block1: step = dwarf2_parse_byte(ctx); break; case DW_FORM_block2: step = dwarf2_parse_u2(ctx); break; @@ -604,6 +605,7 @@ static void dwarf2_fill_attr(const dwarf2_parse_context_t* ctx, break;
case DW_FORM_block: + case DW_FORM_exprloc: attr->u.block.size = dwarf2_get_leb128_as_unsigned(data, &attr->u.block.ptr); TRACE("block<%p,%u>\n", attr->u.block.ptr, attr->u.block.size); break; @@ -955,6 +957,7 @@ static BOOL dwarf2_compute_location_attr(dwarf2_parse_context_t* ctx, case DW_FORM_block1: case DW_FORM_block2: case DW_FORM_block4: + case DW_FORM_exprloc: break; default: FIXME("Unsupported yet form %lx\n", xloc.form); return FALSE; @@ -1696,6 +1699,7 @@ static void dwarf2_parse_variable(dwarf2_subprogram_t* subpgm, case DW_FORM_block1: case DW_FORM_block2: case DW_FORM_block4: + case DW_FORM_exprloc: v.n1.n2.vt = VT_I4; switch (value.u.block.size) {