DWARFDataExtractor.h revision 296417
12061Sjkh//===-- DWARFDataExtractor.h ------------------------------------*- C++ -*-===// 228104Sasami// 32061Sjkh// The LLVM Compiler Infrastructure 42061Sjkh// 515603Smarkm// This file is distributed under the University of Illinois Open Source 63197Scsgr// License. See LICENSE.TXT for details. 720710Sasami// 820710Sasami//===----------------------------------------------------------------------===// 93197Scsgr 102061Sjkh#ifndef liblldb_DWARFDataExtractor_h_ 1112483Speter#define liblldb_DWARFDataExtractor_h_ 122160Scsgr 132834Swollman// Other libraries and framework includes. 142061Sjkh#include "lldb/Core/DataExtractor.h" 152061Sjkh#include "lldb/Core/dwarf.h" 162160Scsgr 1717308Speternamespace lldb_private { 1819320Sadam 1927788Sasamiclass DWARFDataExtractor : public lldb_private::DataExtractor 2027788Sasami{ 2125980Sasamipublic: 221594Srgrimes DWARFDataExtractor() : DataExtractor(), m_is_dwarf64(false) { } 2317308Speter 2417308Speter DWARFDataExtractor (const DWARFDataExtractor& data, lldb::offset_t offset, lldb::offset_t length) : 2527910Sasami DataExtractor(data, offset, length), m_is_dwarf64(false) { } 2627910Sasami 2727910Sasami uint64_t 2817308Speter GetDWARFInitialLength(lldb::offset_t *offset_ptr) const; 2917308Speter 3017308Speter dw_offset_t 3119175Sbde GetDWARFOffset(lldb::offset_t *offset_ptr) const; 3219175Sbde 3319175Sbde size_t 3419175Sbde GetDWARFSizeofInitialLength() const { return m_is_dwarf64 ? 12 : 4; } 3517308Speter 3627910Sasami bool 3725647Sbde IsDWARF64() const { return m_is_dwarf64; } 3827910Sasami 3917308Speterprotected: 402061Sjkh mutable bool m_is_dwarf64; 412061Sjkh}; 421594Srgrimes 4327910Sasami} 447407Srgrimes 457108Sphk#endif // liblldb_DWARFDataExtractor_h_ 467108Sphk