diff options
-rw-r--r-- | Userland/Libraries/LibDebug/Dwarf/DIE.cpp | 8 | ||||
-rw-r--r-- | Userland/Libraries/LibDebug/Dwarf/DIE.h | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/Userland/Libraries/LibDebug/Dwarf/DIE.cpp b/Userland/Libraries/LibDebug/Dwarf/DIE.cpp index 5733b33fd5..47160cf5d2 100644 --- a/Userland/Libraries/LibDebug/Dwarf/DIE.cpp +++ b/Userland/Libraries/LibDebug/Dwarf/DIE.cpp @@ -131,6 +131,14 @@ DIE::AttributeValue DIE::get_attribute_value(AttributeDataForm form, value.data.as_u32 = data; break; } + case AttributeDataForm::Data8: { + u64 data; + debug_info_stream >> data; + VERIFY(!debug_info_stream.has_any_error()); + value.type = AttributeValue::Type::LongUnsignedNumber; + value.data.as_u64 = data; + break; + } case AttributeDataForm::Ref4: { u32 data; debug_info_stream >> data; diff --git a/Userland/Libraries/LibDebug/Dwarf/DIE.h b/Userland/Libraries/LibDebug/Dwarf/DIE.h index 3ba68eafa8..a1f4a278e8 100644 --- a/Userland/Libraries/LibDebug/Dwarf/DIE.h +++ b/Userland/Libraries/LibDebug/Dwarf/DIE.h @@ -46,6 +46,7 @@ public: enum class Type : u8 { UnsignedNumber, SignedNumber, + LongUnsignedNumber, String, DieReference, // Reference to another DIE in the same compilation unit Boolean, @@ -57,6 +58,7 @@ public: union { u32 as_u32; i32 as_i32; + u64 as_u64; const char* as_string; // points to bytes in the memory mapped elf image bool as_bool; struct { |