]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugPubnames.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.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 {
21 public:
22             DWARFDebugPubnames();
23     bool    Extract(const lldb_private::DataExtractor& data);
24     bool    GeneratePubnames(SymbolFileDWARF* dwarf2Data);
25     bool    GeneratePubBaseTypes(SymbolFileDWARF* dwarf2Data);
26
27     void    Dump(lldb_private::Log *s) const;
28     bool    Find(const char* name, bool ignore_case, std::vector<dw_offset_t>& die_offset_coll) const;
29     bool    Find(const lldb_private::RegularExpression& regex, std::vector<dw_offset_t>& die_offsets) const;
30 protected:
31     typedef std::list<DWARFDebugPubnamesSet>    collection;
32     typedef collection::iterator                iterator;
33     typedef collection::const_iterator          const_iterator;
34
35     collection m_sets;
36 };
37
38 #endif  // SymbolFileDWARF_DWARFDebugPubnames_h_