lldb-private.h revision 263363
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
25namespace 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//------------------------------------------------------------------
34void
35Initialize();
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//------------------------------------------------------------------
53void
54WillTerminate();
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//------------------------------------------------------------------
66void
67Terminate();
68
69
70const char *
71GetVersion ();
72
73const char *
74GetVoteAsCString (Vote vote);
75
76const char *
77GetSectionTypeAsCString (lldb::SectionType sect_type);
78
79bool
80NameMatches (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