[PATCH 07/10] dbghelp{dwarf}: added definitions of some GNU extenstions for FORM:s.
Eric Pouech
eric.pouech at gmail.com
Sat Sep 11 03:59:24 CDT 2021
And returning failure when encoutering them, as they are not supported yet
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---
dlls/dbghelp/dwarf.c | 10 ++++++++++
dlls/dbghelp/dwarf.h | 4 ++++
2 files changed, 14 insertions(+)
diff --git a/dlls/dbghelp/dwarf.c b/dlls/dbghelp/dwarf.c
index 14c1861b85a..3988f2b3d44 100644
--- a/dlls/dbghelp/dwarf.c
+++ b/dlls/dbghelp/dwarf.c
@@ -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_block4: step = dwarf2_parse_u4(ctx); break;
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;
default:
FIXME("Unhandled attribute form %lx\n", abbrev_attr->form);
@@ -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));
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:
FIXME("Unhandled attribute form %lx\n", abbrev_attr->form);
break;
diff --git a/dlls/dbghelp/dwarf.h b/dlls/dbghelp/dwarf.h
index 603c302d136..a50a7251876 100644
--- a/dlls/dbghelp/dwarf.h
+++ b/dlls/dbghelp/dwarf.h
@@ -266,6 +266,10 @@ typedef enum dwarf_form_e
DW_FORM_exprloc = 0x18,
DW_FORM_flag_present = 0x19,
DW_FORM_ref_sig8 = 0x20,
+
+ /** GNU extensions */
+ DW_FORM_GNU_ref_alt = 0x1f20,
+ DW_FORM_GNU_strp_alt = 0x1f21,
} dwarf_form_t;
/** type encoding */
More information about the wine-devel
mailing list