|
@@ -6,9 +6,11 @@
|
|
|
|
|
|
#pragma once
|
|
#pragma once
|
|
|
|
|
|
|
|
+#include "AttributeValue.h"
|
|
#include "CompilationUnit.h"
|
|
#include "CompilationUnit.h"
|
|
#include "DwarfTypes.h"
|
|
#include "DwarfTypes.h"
|
|
#include <AK/ByteBuffer.h>
|
|
#include <AK/ByteBuffer.h>
|
|
|
|
+#include <AK/NonnullOwnPtrVector.h>
|
|
#include <AK/NonnullRefPtr.h>
|
|
#include <AK/NonnullRefPtr.h>
|
|
#include <AK/RefCounted.h>
|
|
#include <AK/RefCounted.h>
|
|
#include <AK/String.h>
|
|
#include <AK/String.h>
|
|
@@ -16,32 +18,6 @@
|
|
|
|
|
|
namespace Debug::Dwarf {
|
|
namespace Debug::Dwarf {
|
|
|
|
|
|
-struct AttributeValue {
|
|
|
|
- enum class Type : u8 {
|
|
|
|
- UnsignedNumber,
|
|
|
|
- SignedNumber,
|
|
|
|
- LongUnsignedNumber,
|
|
|
|
- String,
|
|
|
|
- DieReference, // Reference to another DIE in the same compilation unit
|
|
|
|
- Boolean,
|
|
|
|
- DwarfExpression,
|
|
|
|
- SecOffset,
|
|
|
|
- RawBytes,
|
|
|
|
- } type;
|
|
|
|
-
|
|
|
|
- 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 {
|
|
|
|
- u32 length;
|
|
|
|
- const u8* bytes; // points to bytes in the memory mapped elf image
|
|
|
|
- } as_raw_bytes;
|
|
|
|
- } data {};
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
class DwarfInfo {
|
|
class DwarfInfo {
|
|
public:
|
|
public:
|
|
explicit DwarfInfo(const ELF::Image&);
|
|
explicit DwarfInfo(const ELF::Image&);
|