1 //===-- NameToDIE.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_NameToDIE_h_ 11 #define SymbolFileDWARF_NameToDIE_h_ 12 13 #include "lldb/Core/UniqueCStringMap.h" 14 #include "lldb/lldb-defines.h" 15 16 class SymbolFileDWARF; 17 18 typedef std::vector<uint32_t> DIEArray; 19 20 class NameToDIE 21 { 22 public: 23 NameToDIE () : 24 m_map() 25 { 26 } 27 28 ~NameToDIE () 29 { 30 } 31 32 void 33 Dump (lldb_private::Stream *s); 34 35 void 36 Insert (const lldb_private::ConstString& name, uint32_t die_offset); 37 38 void 39 Finalize(); 40 41 size_t 42 Find (const lldb_private::ConstString &name, 43 DIEArray &info_array) const; 44 45 size_t 46 Find (const lldb_private::RegularExpression& regex, 47 DIEArray &info_array) const; 48 49 size_t 50 FindAllEntriesForCompileUnit (uint32_t cu_offset, 51 uint32_t cu_end_offset, 52 DIEArray &info_array) const; 53 54 protected: 55 lldb_private::UniqueCStringMap<uint32_t> m_map; 56 57 }; 58 59 #endif // SymbolFileDWARF_NameToDIE_h_ 60