DWARFDataExtractor.h revision 321369
1169691Skan//===-- DWARFDataExtractor.h ------------------------------------*- C++ -*-===// 2169691Skan// 3169691Skan// The LLVM Compiler Infrastructure 4169691Skan// 5169691Skan// This file is distributed under the University of Illinois Open Source 6169691Skan// License. See LICENSE.TXT for details. 7169691Skan// 8169691Skan//===----------------------------------------------------------------------===// 9169691Skan 10169691Skan#ifndef liblldb_DWARFDataExtractor_h_ 11169691Skan#define liblldb_DWARFDataExtractor_h_ 12169691Skan 13169691Skan// Other libraries and framework includes. 14169691Skan#include "lldb/Core/dwarf.h" 15169691Skan#include "lldb/Utility/DataExtractor.h" 16169691Skan 17169691Skannamespace lldb_private { 18169691Skan 19169691Skanclass DWARFDataExtractor : public DataExtractor { 20169691Skanpublic: 21169691Skan DWARFDataExtractor() : DataExtractor(), m_is_dwarf64(false) {} 22169691Skan 23169691Skan DWARFDataExtractor(const DWARFDataExtractor &data, lldb::offset_t offset, 24169691Skan lldb::offset_t length) 25169691Skan : DataExtractor(data, offset, length), m_is_dwarf64(false) {} 26169691Skan 27169691Skan uint64_t GetDWARFInitialLength(lldb::offset_t *offset_ptr) const; 28169691Skan 29169691Skan dw_offset_t GetDWARFOffset(lldb::offset_t *offset_ptr) const; 30169691Skan 31169691Skan size_t GetDWARFSizeofInitialLength() const { return m_is_dwarf64 ? 12 : 4; } 32169691Skan 33169691Skan bool IsDWARF64() const { return m_is_dwarf64; } 34169691Skan 35169691Skanprotected: 36169691Skan mutable bool m_is_dwarf64; 37169691Skan}; 38169691Skan} 39169691Skan 40169691Skan#endif // liblldb_DWARFDataExtractor_h_ 41169691Skan