From ed13b7beb6eb2342486d1ee1ecbbb0c6405e2afa Mon Sep 17 00:00:00 2001 From: Daniel Bertalan Date: Sat, 22 Apr 2023 16:58:22 +0200 Subject: [PATCH] LibDebug: Support DW_FORM_ref_udata This is used alongside/instead of the fixed-length DW_FORM_ref4 form when compiling for AArch64. --- Userland/Libraries/LibDebug/Dwarf/DwarfInfo.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Userland/Libraries/LibDebug/Dwarf/DwarfInfo.cpp b/Userland/Libraries/LibDebug/Dwarf/DwarfInfo.cpp index 6d52ecf8b7..96bb4df27c 100644 --- a/Userland/Libraries/LibDebug/Dwarf/DwarfInfo.cpp +++ b/Userland/Libraries/LibDebug/Dwarf/DwarfInfo.cpp @@ -161,6 +161,13 @@ ErrorOr DwarfInfo::get_attribute_value(AttributeDataForm form, s value.m_data.as_unsigned = data + unit->offset(); break; } + case AttributeDataForm::RefUData: { + auto data = TRY(debug_info_stream.read_value>()); + value.m_type = AttributeValue::Type::DieReference; + VERIFY(unit); + value.m_data.as_unsigned = data + unit->offset(); + break; + } case AttributeDataForm::FlagPresent: { value.m_type = AttributeValue::Type::Boolean; value.m_data.as_bool = true;