Home | History | Annotate | Download | only in DWARF
      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_
     39