]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.h
MFC r343601:
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Plugins / SymbolFile / DWARF / DWARFDebugPubnames.h
1 //===-- DWARFDebugPubnames.h ------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef SymbolFileDWARF_DWARFDebugPubnames_h_
11 #define SymbolFileDWARF_DWARFDebugPubnames_h_
12
13 #include "SymbolFileDWARF.h"
14
15 #include <list>
16
17 #include "DWARFDebugPubnamesSet.h"
18
19 class DWARFDebugPubnames {
20 public:
21   DWARFDebugPubnames();
22   bool Extract(const lldb_private::DWARFDataExtractor &data);
23   bool GeneratePubnames(SymbolFileDWARF *dwarf2Data);
24   bool GeneratePubBaseTypes(SymbolFileDWARF *dwarf2Data);
25
26   void Dump(lldb_private::Log *s) const;
27   bool Find(const char *name, bool ignore_case,
28             std::vector<dw_offset_t> &die_offset_coll) const;
29   bool Find(const lldb_private::RegularExpression &regex,
30             std::vector<dw_offset_t> &die_offsets) const;
31
32 protected:
33   typedef std::list<DWARFDebugPubnamesSet> collection;
34   typedef collection::iterator iterator;
35   typedef collection::const_iterator const_iterator;
36
37   collection m_sets;
38 };
39
40 #endif // SymbolFileDWARF_DWARFDebugPubnames_h_