1 //===-- lldb-private.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 lldb_lldb_private_h_ 11 #define lldb_lldb_private_h_ 12 13 #if defined(__cplusplus) 14 15 #ifdef _WIN32 16 #include "lldb/Host/windows/win32.h" 17 #endif 18 19 #include "lldb/lldb-public.h" 20 #include "lldb/lldb-private-enumerations.h" 21 #include "lldb/lldb-private-interfaces.h" 22 #include "lldb/lldb-private-log.h" 23 #include "lldb/lldb-private-types.h" 24 25 namespace lldb_private { 26 27 //------------------------------------------------------------------ 28 /// Initializes lldb. 29 /// 30 /// This function should be called prior to using any lldb 31 /// classes to ensure they have a chance to do any static 32 /// initialization that they need to do. 33 //------------------------------------------------------------------ 34 void 35 Initialize(); 36 37 38 //------------------------------------------------------------------ 39 /// Notifies any classes that lldb will be terminating soon. 40 /// 41 /// This function will be called when the Debugger shared instance 42 /// is being destructed and will give classes the ability to clean 43 /// up any threads or other resources they have that they might not 44 /// be able to clean up in their own destructors. 45 /// 46 /// Internal classes that need this ability will need to add their 47 /// void T::WillTerminate() method in the body of this function in 48 /// lldb.cpp to ensure it will get called. 49 /// 50 /// TODO: when we start having external plug-ins, we will need a way 51 /// for plug-ins to register a WillTerminate callback. 52 //------------------------------------------------------------------ 53 void 54 WillTerminate(); 55 56 //------------------------------------------------------------------ 57 /// Terminates lldb 58 /// 59 /// This function optionally can be called when clients are done 60 /// using lldb functionality to free up any static resources 61 /// that have been allocated during initialization or during 62 /// function calls. No lldb functions should be called after 63 /// calling this function without again calling DCInitialize() 64 /// again. 65 //------------------------------------------------------------------ 66 void 67 Terminate(); 68 69 70 const char * 71 GetVersion (); 72 73 const char * 74 GetVoteAsCString (Vote vote); 75 76 const char * 77 GetSectionTypeAsCString (lldb::SectionType sect_type); 78 79 bool 80 NameMatches (const char *name, NameMatchType match_type, const char *match); 81 82 } // namespace lldb_private 83 84 85 #endif // defined(__cplusplus) 86 87 88 #endif // lldb_lldb_private_h_ 89