1257752Semaste//===-- DWARFDataExtractor.h ------------------------------------*- C++ -*-===//
2257752Semaste//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6257752Semaste//
7257752Semaste//===----------------------------------------------------------------------===//
8257752Semaste
9314564Sdim#ifndef liblldb_DWARFDataExtractor_h_
10314564Sdim#define liblldb_DWARFDataExtractor_h_
11257752Semaste
12257752Semaste#include "lldb/Core/dwarf.h"
13321369Sdim#include "lldb/Utility/DataExtractor.h"
14353358Sdim#include "llvm/DebugInfo/DWARF/DWARFDataExtractor.h"
15257752Semaste
16257752Semastenamespace lldb_private {
17257752Semaste
18321369Sdimclass DWARFDataExtractor : public DataExtractor {
19257752Semastepublic:
20353358Sdim  DWARFDataExtractor() = default;
21257752Semaste
22314564Sdim  DWARFDataExtractor(const DWARFDataExtractor &data, lldb::offset_t offset,
23314564Sdim                     lldb::offset_t length)
24353358Sdim      : DataExtractor(data, offset, length) {}
25257752Semaste
26314564Sdim  uint64_t GetDWARFInitialLength(lldb::offset_t *offset_ptr) const;
27257752Semaste
28314564Sdim  dw_offset_t GetDWARFOffset(lldb::offset_t *offset_ptr) const;
29257752Semaste
30353358Sdim  size_t GetDWARFSizeofInitialLength() const { return 4; }
31353358Sdim  size_t GetDWARFSizeOfOffset() const { return 4; }
32280031Sdim
33353358Sdim  llvm::DWARFDataExtractor GetAsLLVM() const;
34257752Semaste};
35257752Semaste}
36257752Semaste
37314564Sdim#endif // liblldb_DWARFDataExtractor_h_
38