xref: /llvm-project/lldb/include/lldb/API/SBDefines.h (revision 9d7999885a6aa2c4afc252a645448b4f1666e951)
1 //===-- SBDefines.h ---------------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_API_SBDEFINES_H
10 #define LLDB_API_SBDEFINES_H
11 
12 #include "lldb/lldb-defines.h"
13 #include "lldb/lldb-enumerations.h"
14 #include "lldb/lldb-forward.h"
15 #include "lldb/lldb-types.h"
16 #include "lldb/lldb-versioning.h"
17 
18 #include <cstdio> // For FILE *
19 
20 #ifndef LLDB_API
21 #if defined(_WIN32)
22 #if defined(LLDB_IN_LIBLLDB)
23 #define LLDB_API __declspec(dllexport)
24 #else
25 #define LLDB_API __declspec(dllimport)
26 #endif
27 #else // defined (_WIN32)
28 #define LLDB_API
29 #endif
30 #endif
31 
32 // Don't add the deprecated attribute when generating the bindings or when
33 // building for anything older than C++14 which is the first version that
34 // supports the attribute.
35 #if defined(SWIG) || _cplusplus < 201402L
36 #undef LLDB_DEPRECATED
37 #undef LLDB_DEPRECATED_FIXME
38 #define LLDB_DEPRECATED(MSG)
39 #define LLDB_DEPRECATED_FIXME(MSG, FIX)
40 #endif
41 
42 // Forward Declarations
43 namespace lldb {
44 
45 class LLDB_API SBAddress;
46 class LLDB_API SBAddressRange;
47 class LLDB_API SBAddressRangeList;
48 class LLDB_API SBAttachInfo;
49 class LLDB_API SBBlock;
50 class LLDB_API SBBreakpoint;
51 class LLDB_API SBBreakpointList;
52 class LLDB_API SBBreakpointLocation;
53 class LLDB_API SBBreakpointName;
54 class LLDB_API SBBreakpointNameImpl;
55 class LLDB_API SBBroadcaster;
56 class LLDB_API SBCommand;
57 class LLDB_API SBCommandInterpreter;
58 class LLDB_API SBCommandInterpreterRunOptions;
59 class LLDB_API SBCommandInterpreterRunResult;
60 class LLDB_API SBCommandPluginInterface;
61 class LLDB_API SBCommandReturnObject;
62 class LLDB_API SBCommunication;
63 class LLDB_API SBCompileUnit;
64 class LLDB_API SBSaveCoreOptions;
65 class LLDB_API SBData;
66 class LLDB_API SBDebugger;
67 class LLDB_API SBDeclaration;
68 class LLDB_API SBEnvironment;
69 class LLDB_API SBError;
70 class LLDB_API SBEvent;
71 class LLDB_API SBEventList;
72 class LLDB_API SBExecutionContext;
73 class LLDB_API SBExpressionOptions;
74 class LLDB_API SBFile;
75 class LLDB_API SBFileSpec;
76 class LLDB_API SBFileSpecList;
77 class LLDB_API SBFormat;
78 class LLDB_API SBFrame;
79 class LLDB_API SBFunction;
80 class LLDB_API SBHostOS;
81 class LLDB_API SBInstruction;
82 class LLDB_API SBInstructionList;
83 class LLDB_API SBLanguageRuntime;
84 class LLDB_API SBLaunchInfo;
85 class LLDB_API SBLineEntry;
86 class LLDB_API SBListener;
87 class LLDB_API SBMemoryRegionInfo;
88 class LLDB_API SBMemoryRegionInfoList;
89 class LLDB_API SBModule;
90 class LLDB_API SBModuleSpec;
91 class LLDB_API SBModuleSpecList;
92 class LLDB_API SBPlatform;
93 class LLDB_API SBPlatformConnectOptions;
94 class LLDB_API SBPlatformShellCommand;
95 class LLDB_API SBProcess;
96 class LLDB_API SBProcessInfo;
97 class LLDB_API SBProcessInfoList;
98 class LLDB_API SBProgress;
99 class LLDB_API SBQueue;
100 class LLDB_API SBQueueItem;
101 class LLDB_API SBReplayOptions;
102 class LLDB_API SBReproducer;
103 class LLDB_API SBScriptObject;
104 class LLDB_API SBSection;
105 class LLDB_API SBSourceManager;
106 class LLDB_API SBStatisticsOptions;
107 class LLDB_API SBStream;
108 class LLDB_API SBStringList;
109 class LLDB_API SBStructuredData;
110 class LLDB_API SBSymbol;
111 class LLDB_API SBSymbolContext;
112 class LLDB_API SBSymbolContextList;
113 class LLDB_API SBTarget;
114 class LLDB_API SBThread;
115 class LLDB_API SBThreadCollection;
116 class LLDB_API SBThreadPlan;
117 class LLDB_API SBTrace;
118 class LLDB_API SBTraceCursor;
119 class LLDB_API SBType;
120 class LLDB_API SBTypeCategory;
121 class LLDB_API SBTypeEnumMember;
122 class LLDB_API SBTypeEnumMemberList;
123 class LLDB_API SBTypeFilter;
124 class LLDB_API SBTypeFormat;
125 class LLDB_API SBTypeMember;
126 class LLDB_API SBTypeMemberFunction;
127 class LLDB_API SBTypeNameSpecifier;
128 class LLDB_API SBTypeStaticField;
129 class LLDB_API SBTypeSummary;
130 class LLDB_API SBTypeSummaryOptions;
131 class LLDB_API SBTypeSynthetic;
132 class LLDB_API SBTypeList;
133 class LLDB_API SBValue;
134 class LLDB_API SBValueList;
135 class LLDB_API SBVariablesOptions;
136 class LLDB_API SBWatchpoint;
137 class LLDB_API SBWatchpointOptions;
138 class LLDB_API SBUnixSignals;
139 
140 typedef bool (*SBBreakpointHitCallback)(void *baton, lldb::SBProcess &process,
141                                         lldb::SBThread &thread,
142                                         lldb::SBBreakpointLocation &location);
143 
144 typedef void (*SBDebuggerDestroyCallback)(lldb::user_id_t debugger_id,
145                                           void *baton);
146 
147 typedef lldb::SBError (*SBPlatformLocateModuleCallback)(
148     void *baton, const lldb::SBModuleSpec &module_spec,
149     lldb::SBFileSpec &module_file_spec, lldb::SBFileSpec &symbol_file_spec);
150 }
151 
152 #endif // LLDB_API_SBDEFINES_H
153