diff options
Diffstat (limited to 'source/Plugins/SymbolFile/DWARF/DWARFFormValue.h')
-rw-r--r-- | source/Plugins/SymbolFile/DWARF/DWARFFormValue.h | 154 |
1 files changed, 69 insertions, 85 deletions
diff --git a/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h b/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h index 07bd038d9486..8d6af3d65b33 100644 --- a/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h +++ b/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h @@ -10,103 +10,87 @@ #ifndef SymbolFileDWARF_DWARFFormValue_h_ #define SymbolFileDWARF_DWARFFormValue_h_ -#include <stddef.h> // for NULL #include "DWARFDataExtractor.h" +#include <stddef.h> // for NULL class DWARFCompileUnit; -class DWARFFormValue -{ +class DWARFFormValue { public: - typedef struct ValueTypeTag - { - ValueTypeTag() : - value(), - data(NULL) - { - value.uval = 0; - } + typedef struct ValueTypeTag { + ValueTypeTag() : value(), data(NULL) { value.uval = 0; } + + union { + uint64_t uval; + int64_t sval; + const char *cstr; + } value; + const uint8_t *data; + } ValueType; - union - { - uint64_t uval; - int64_t sval; - const char* cstr; - } value; - const uint8_t* data; - } ValueType; - - class FixedFormSizes - { - public: - FixedFormSizes() : - m_fix_sizes(nullptr), m_size(0) - {} + class FixedFormSizes { + public: + FixedFormSizes() : m_fix_sizes(nullptr), m_size(0) {} - FixedFormSizes(const uint8_t* fix_sizes, size_t size) : - m_fix_sizes(fix_sizes), m_size(size) - {} + FixedFormSizes(const uint8_t *fix_sizes, size_t size) + : m_fix_sizes(fix_sizes), m_size(size) {} - uint8_t - GetSize(uint32_t index) const - { - return index < m_size ? m_fix_sizes[index] : 0; - } + uint8_t GetSize(uint32_t index) const { + return index < m_size ? m_fix_sizes[index] : 0; + } - bool - Empty() const - { - return m_size == 0; - } + bool Empty() const { return m_size == 0; } - private: - const uint8_t* m_fix_sizes; - size_t m_size; - }; + private: + const uint8_t *m_fix_sizes; + size_t m_size; + }; - enum - { - eValueTypeInvalid = 0, - eValueTypeUnsigned, - eValueTypeSigned, - eValueTypeCStr, - eValueTypeBlock - }; + enum { + eValueTypeInvalid = 0, + eValueTypeUnsigned, + eValueTypeSigned, + eValueTypeCStr, + eValueTypeBlock + }; + + DWARFFormValue(); + DWARFFormValue(const DWARFCompileUnit *cu, dw_form_t form); + const DWARFCompileUnit *GetCompileUnit() const { return m_cu; } + void SetCompileUnit(const DWARFCompileUnit *cu) { m_cu = cu; } + dw_form_t Form() const { return m_form; } + void SetForm(dw_form_t form) { m_form = form; } + const ValueType &Value() const { return m_value; } + void Dump(lldb_private::Stream &s) const; + bool ExtractValue(const lldb_private::DWARFDataExtractor &data, + lldb::offset_t *offset_ptr); + const uint8_t *BlockData() const; + uint64_t Reference() const; + uint64_t Reference(dw_offset_t offset) const; + bool Boolean() const { return m_value.value.uval != 0; } + uint64_t Unsigned() const { return m_value.value.uval; } + void SetUnsigned(uint64_t uval) { m_value.value.uval = uval; } + int64_t Signed() const { return m_value.value.sval; } + void SetSigned(int64_t sval) { m_value.value.sval = sval; } + const char *AsCString() const; + dw_addr_t Address() const; + bool IsValid() const { return m_form != 0; } + bool SkipValue(const lldb_private::DWARFDataExtractor &debug_info_data, + lldb::offset_t *offset_ptr) const; + static bool SkipValue(const dw_form_t form, + const lldb_private::DWARFDataExtractor &debug_info_data, + lldb::offset_t *offset_ptr, const DWARFCompileUnit *cu); + static bool IsBlockForm(const dw_form_t form); + static bool IsDataForm(const dw_form_t form); + static FixedFormSizes GetFixedFormSizesForAddressSize(uint8_t addr_size, + bool is_dwarf64); + static int Compare(const DWARFFormValue &a, const DWARFFormValue &b); + void Clear(); - DWARFFormValue(); - DWARFFormValue(const DWARFCompileUnit* cu, dw_form_t form); - const DWARFCompileUnit* GetCompileUnit () const { return m_cu; } - void SetCompileUnit (const DWARFCompileUnit* cu) { m_cu = cu; } - dw_form_t Form() const { return m_form; } - void SetForm(dw_form_t form) { m_form = form; } - const ValueType& Value() const { return m_value; } - void Dump(lldb_private::Stream &s) const; - bool ExtractValue(const lldb_private::DWARFDataExtractor& data, - lldb::offset_t* offset_ptr); - const uint8_t* BlockData() const; - uint64_t Reference() const; - uint64_t Reference (dw_offset_t offset) const; - bool Boolean() const { return m_value.value.uval != 0; } - uint64_t Unsigned() const { return m_value.value.uval; } - void SetUnsigned(uint64_t uval) { m_value.value.uval = uval; } - int64_t Signed() const { return m_value.value.sval; } - void SetSigned(int64_t sval) { m_value.value.sval = sval; } - const char* AsCString() const; - dw_addr_t Address() const; - bool IsValid() const { return m_form != 0; } - bool SkipValue(const lldb_private::DWARFDataExtractor& debug_info_data, lldb::offset_t *offset_ptr) const; - static bool SkipValue(const dw_form_t form, const lldb_private::DWARFDataExtractor& debug_info_data, lldb::offset_t *offset_ptr, const DWARFCompileUnit* cu); - static bool IsBlockForm(const dw_form_t form); - static bool IsDataForm(const dw_form_t form); - static FixedFormSizes GetFixedFormSizesForAddressSize (uint8_t addr_size, bool is_dwarf64); - static int Compare (const DWARFFormValue& a, - const DWARFFormValue& b); - void Clear(); protected: - const DWARFCompileUnit* m_cu; // Compile unit for this form - dw_form_t m_form; // Form for this value - ValueType m_value; // Contains all data for the form + const DWARFCompileUnit *m_cu; // Compile unit for this form + dw_form_t m_form; // Form for this value + ValueType m_value; // Contains all data for the form }; - -#endif // SymbolFileDWARF_DWARFFormValue_h_ +#endif // SymbolFileDWARF_DWARFFormValue_h_ |