DWARFDataExtractor.h revision 280031
1257752Semaste//===-- DWARFDataExtractor.h ------------------------------------*- C++ -*-===//
2257752Semaste//
3257752Semaste//                     The LLVM Compiler Infrastructure
4257752Semaste//
5257752Semaste// This file is distributed under the University of Illinois Open Source
6257752Semaste// License. See LICENSE.TXT for details.
7257752Semaste//
8257752Semaste//===----------------------------------------------------------------------===//
9257752Semaste
10257752Semaste#ifndef liblldb_DWARFDataExtractor_h_
11257752Semaste#define liblldb_DWARFDataExtractor_h_
12257752Semaste
13257752Semaste// Other libraries and framework includes.
14257752Semaste#include "lldb/Core/DataExtractor.h"
15257752Semaste#include "lldb/Core/dwarf.h"
16257752Semaste
17257752Semastenamespace lldb_private {
18257752Semaste
19257752Semasteclass DWARFDataExtractor : public lldb_private::DataExtractor
20257752Semaste{
21257752Semastepublic:
22257752Semaste    DWARFDataExtractor() : DataExtractor(), m_is_dwarf64(false) { };
23257752Semaste
24257752Semaste    DWARFDataExtractor (const DWARFDataExtractor& data, lldb::offset_t offset, lldb::offset_t length) :
25257752Semaste      DataExtractor(data, offset, length), m_is_dwarf64(false) { };
26257752Semaste
27257752Semaste    uint64_t
28257752Semaste    GetDWARFInitialLength(lldb::offset_t *offset_ptr) const;
29257752Semaste
30257752Semaste    dw_offset_t
31257752Semaste    GetDWARFOffset(lldb::offset_t *offset_ptr) const;
32257752Semaste
33257752Semaste    size_t
34257752Semaste    GetDWARFSizeofInitialLength() const { return m_is_dwarf64 ? 12 : 4; }
35257752Semaste
36280031Sdim    bool
37280031Sdim    IsDWARF64() const { return m_is_dwarf64; }
38280031Sdim
39257752Semasteprotected:
40257752Semaste    mutable bool m_is_dwarf64;
41257752Semaste};
42257752Semaste
43257752Semaste}
44257752Semaste
45257752Semaste#endif  // liblldb_DWARFDataExtractor_h_
46257752Semaste
47