1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 10:57:35 +00:00

LibDebug: Propagate errors throughout DWARF parsing

Splitting this into a separate commit was an afterthought, so this does
not yet feature any fallible operations.
This commit is contained in:
Tim Schumacher 2023-01-22 00:32:08 +01:00 committed by Andreas Kling
parent e235c42e4d
commit e62269650a
17 changed files with 243 additions and 204 deletions

View file

@ -27,16 +27,16 @@ public:
bool has_children() const { return m_has_children; }
EntryTag tag() const { return m_tag; }
Optional<AttributeValue> get_attribute(Attribute const&) const;
ErrorOr<Optional<AttributeValue>> get_attribute(Attribute const&) const;
void for_each_child(Function<void(DIE const& child)> callback) const;
ErrorOr<void> for_each_child(Function<ErrorOr<void>(DIE const& child)> callback) const;
bool is_null() const { return m_tag == EntryTag::None; }
CompilationUnit const& compilation_unit() const { return m_compilation_unit; }
Optional<u32> parent_offset() const { return m_parent_offset; }
private:
void rehydrate_from(u32 offset, Optional<u32> parent_offset);
ErrorOr<void> rehydrate_from(u32 offset, Optional<u32> parent_offset);
CompilationUnit const& m_compilation_unit;
u32 m_offset { 0 };
u32 m_data_offset { 0 };