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