Commit 23f0ebbc authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp/dwarf: Add definitions of some GNU extensions for FORMs.

And return failure when encoutering them, as they are not supported yet. Signed-off-by: 's avatarEric Pouech <eric.pouech@gmail.com> Signed-off-by: 's avatarAlexandre Julliard <julliard@winehq.org>
parent 12a77842
...@@ -501,6 +501,8 @@ static void dwarf2_swallow_attribute(dwarf2_traverse_context_t* ctx, ...@@ -501,6 +501,8 @@ static void dwarf2_swallow_attribute(dwarf2_traverse_context_t* ctx,
case DW_FORM_block2: step = dwarf2_parse_u2(ctx); break; case DW_FORM_block2: step = dwarf2_parse_u2(ctx); break;
case DW_FORM_block4: step = dwarf2_parse_u4(ctx); break; case DW_FORM_block4: step = dwarf2_parse_u4(ctx); break;
case DW_FORM_sec_offset: case DW_FORM_sec_offset:
case DW_FORM_GNU_ref_alt:
case DW_FORM_GNU_strp_alt:
case DW_FORM_strp: step = head->offset_size; break; case DW_FORM_strp: step = head->offset_size; break;
default: default:
FIXME("Unhandled attribute form %lx\n", abbrev_attr->form); FIXME("Unhandled attribute form %lx\n", abbrev_attr->form);
...@@ -633,6 +635,14 @@ static BOOL dwarf2_fill_attr(const dwarf2_parse_context_t* ctx, ...@@ -633,6 +635,14 @@ static BOOL dwarf2_fill_attr(const dwarf2_parse_context_t* ctx,
TRACE("sec_offset<%s>\n", wine_dbgstr_longlong(attr->u.lluvalue)); TRACE("sec_offset<%s>\n", wine_dbgstr_longlong(attr->u.lluvalue));
break; break;
case DW_FORM_GNU_ref_alt:
FIXME("Unhandled FORM_GNU_ref_alt\n");
attr->u.uvalue = 0;
return FALSE;
case DW_FORM_GNU_strp_alt:
FIXME("Unhandled FORM_GNU_strp_alt\n");
attr->u.string = NULL;
return FALSE;
default: default:
FIXME("Unhandled attribute form %lx\n", abbrev_attr->form); FIXME("Unhandled attribute form %lx\n", abbrev_attr->form);
break; break;
......
...@@ -266,6 +266,10 @@ typedef enum dwarf_form_e ...@@ -266,6 +266,10 @@ typedef enum dwarf_form_e
DW_FORM_exprloc = 0x18, DW_FORM_exprloc = 0x18,
DW_FORM_flag_present = 0x19, DW_FORM_flag_present = 0x19,
DW_FORM_ref_sig8 = 0x20, DW_FORM_ref_sig8 = 0x20,
/** GNU extensions */
DW_FORM_GNU_ref_alt = 0x1f20,
DW_FORM_GNU_strp_alt = 0x1f21,
} dwarf_form_t; } dwarf_form_t;
/** type encoding */ /** type encoding */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment