1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 12:27:34 +00:00

LibDebug: Add support for parsing array types

This includes multi-dimensional arrays :O
This commit is contained in:
FalseHonesty 2021-04-13 22:08:24 -04:00 committed by Andreas Kling
parent acbb119b27
commit 2d58549296
3 changed files with 65 additions and 34 deletions

View file

@ -94,6 +94,7 @@ public:
OwnPtr<VariableInfo> type;
NonnullOwnPtrVector<VariableInfo> members;
VariableInfo* parent { nullptr };
Vector<u32> dimension_sizes;
bool is_enum_type() const { return type && type->type_tag == Dwarf::EntryTag::EnumerationType; }
};
@ -142,6 +143,7 @@ private:
void parse_scopes_impl(const Dwarf::DIE& die);
OwnPtr<VariableInfo> create_variable_info(const Dwarf::DIE& variable_die, const PtraceRegisters&, u32 address_offset = 0) const;
static bool is_variable_tag_supported(const Dwarf::EntryTag& tag);
void add_type_info_to_variable(const Dwarf::DIE& type_die, const PtraceRegisters& regs, DebugInfo::VariableInfo* parent_variable) const;
NonnullOwnPtr<const ELF::Image> m_elf;
String m_source_root;