aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/lldb-forward.h
blob: b3d15224acb5175c44b137ce403e8aa3ad4388f1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
//===-- lldb-forward.h ------------------------------------------*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef LLDB_lldb_forward_h_
#define LLDB_lldb_forward_h_

#if defined(__cplusplus)

#include "lldb/Utility/SharingPtr.h"

//----------------------------------------------------------------------
// lldb forward declarations
//----------------------------------------------------------------------
namespace lldb_private {

class   ABI;
class   Address;
class   AddressImpl;
class   AddressRange;
class   AddressResolver;
class   ArchSpec;
class   Args;
class   ASTResultSynthesizer;
class   Baton;
class   Block;
class   Breakpoint;
class   BreakpointID;
class   BreakpointIDList;
class   BreakpointList;
class   BreakpointLocation;
class   BreakpointLocationCollection;
class   BreakpointLocationList;
class   BreakpointOptions;
class   BreakpointResolver;
class   BreakpointSite;
class   BreakpointSiteList;
class   BroadcastEventSpec;
class   Broadcaster;
class   BroadcasterManager;
class   CPPLanguageRuntime;
class   ClangASTContext;
class   ClangASTImporter;
class   ClangASTMetadata;
class   ClangASTSource;
class   ClangASTType;
class   ClangNamespaceDecl;
class   ClangExpression;
class   ClangExpressionDeclMap;
class   ClangExpressionParser;
class   ClangExpressionVariable;
class   ClangExpressionVariableList;
class   ClangExpressionVariableList;
class   ClangExpressionVariables;
class   ClangFunction;
class   ClangPersistentVariables;
class   ClangUserExpression;
class   ClangUtilityFunction;
class   CommandInterpreter;
class   CommandObject;
class   CommandReturnObject;
class   Communication;
class   CompileUnit;
class   Condition;
class   Connection;
class   ConnectionFileDescriptor;
class   ConstString;
class   CXXSyntheticChildren;
class   DWARFCallFrameInfo;
class   DWARFExpression;
class   DataBuffer;
class   DataEncoder;
class   DataExtractor;
class   Debugger;
class   Declaration;
class   Disassembler;
struct  DumpValueObjectOptions;
class   DynamicLoader;
class   Editline;
class   EmulateInstruction;
class   Error;
class   EvaluateExpressionOptions;
class   Event;
class   EventData;
class   ExecutionContext;
class   ExecutionContextRef;
class   ExecutionContextRefLocker;
class   ExecutionContextScope;
class   File;
class   FileSpec;
class   FileSpecList;
class   Flags;
class   TypeCategoryImpl;
class   FormatManager;
class   FormattersMatchCandidate;
class   FuncUnwinders;
class   Function;
class   FunctionInfo;
class   InlineFunctionInfo;
class   Instruction;
class   InstructionList;
class   IOHandler;
class   IOObject;
class   IRExecutionUnit;
class   JITLoader;
class   LanguageRuntime;
class   SystemRuntime;
class   LineTable;
class   Listener;
class   Log;
class   LogChannel;
class   Mangled;
class   Materializer;
class   Module;
class   ModuleList;
class   ModuleSpec;
class   ModuleSpecList;
class   Mutex;
struct  NameSearchContext;
class   ObjCLanguageRuntime;
class   ObjectContainer;
class   OptionGroup;
class   OptionGroupOptions;
class   OptionGroupPlatform;
class   ObjectFile;
class   ObjectFileJITDelegate;
class   OperatingSystem;
class   Options;
class   OptionValue;
class   OptionValueArch;
class   OptionValueArgs;
class   OptionValueArray;
class   OptionValueBoolean;
class   OptionValueDictionary;
class   OptionValueEnumeration;
class   OptionValueFileSpec;
class   OptionValueFileSpecList;
class   OptionValueFormat;
class   OptionValuePathMappings;
class   OptionValueProperties;
class   OptionValueRegex;
class   OptionValueSInt64;
class   OptionValueString;
class   OptionValueUInt64;
class   OptionValueUUID;
class   NamedOption;
class   PathMappingList;
class   Platform;
class   Process;
class   ProcessAttachInfo;
class   ProcessModID;
class   ProcessInfo;
class   ProcessInstanceInfo;
class   ProcessInstanceInfoList;
class   ProcessInstanceInfoMatch;
class   ProcessLaunchInfo;
class   Property;
struct  PropertyDefinition;
class   PythonArray;
class   PythonDictionary;
class   PythonInteger;
class   PythonObject;
class   PythonString;
class   RegisterCheckpoint;
class   RegisterContext;
class   RegisterLocation;
class   RegisterLocationList;
class   RegisterValue;
class   RegularExpression;
class   Scalar;
class   ScriptInterpreter;
class   ScriptInterpreterLocker;
class   ScriptInterpreterObject;
#ifndef LLDB_DISABLE_PYTHON
class   ScriptInterpreterPython;
struct  ScriptSummaryFormat;
#endif
class   SearchFilter;
class   Section;
class   SectionImpl;
class   SectionList;
class   SectionLoadHistory;
class   SectionLoadList;
class   Settings;
class   SourceManager;
class   SourceManagerImpl;
class   StackFrame;
class   StackFrameImpl;
class   StackFrameList;
class   StackID;
class   StopInfo;
class   Stoppoint;
class   StoppointCallbackContext;
class   StoppointLocation;
class   Stream;
template <unsigned N> class StreamBuffer;
class   StreamFile;
class   StreamString;
class   StringList;
struct  StringSummaryFormat;
class   TypeSummaryImpl;
class   Symbol;
class   SymbolContext;
class   SymbolContextList;
class   SymbolContextScope;
class   SymbolContextSpecifier;
class   SymbolFile;
class   SymbolFileType;
class   SymbolVendor;
class   Symtab;
class   SyntheticChildren;
class   SyntheticChildrenFrontEnd;
class   TypeFilterImpl;
#ifndef LLDB_DISABLE_PYTHON
class   ScriptedSyntheticChildren;
#endif
class   Queue;
class   QueueItem;
class   QueueImpl;
class   Target;
class   TargetList;
class   Thread;
class   ThreadList;
class   ThreadPlan;
class   ThreadPlanBase;
class   ThreadPlanRunToAddress;
class   ThreadPlanStepInstruction;
class   ThreadPlanStepOut;
class   ThreadPlanStepOverBreakpoint;
class   ThreadPlanStepRange;
class   ThreadPlanStepThrough;
class   ThreadPlanTracer;
class   ThreadSpec;
class   TimeValue;
class   Type;
class   TypeAndOrName;
class   TypeCategoryMap;
class   TypeImpl;
class   TypeList;
class   TypeListImpl;
class   TypeMemberImpl;
class   TypeEnumMemberImpl;
class   TypeEnumMemberListImpl;
class   TypeNameSpecifierImpl;
class   TypePair;
class   UUID;
class   UnixSignals;
class   Unwind;
class   UnwindAssembly;
class   UnwindPlan;
class   UnwindTable;
class   VMRange;
class   Value;
class   TypeFormatImpl;
class   ValueList;
class   ValueObject;
class   ValueObjectChild;
class   ValueObjectConstResult;
class   ValueObjectConstResultChild;
class   ValueObjectConstResultImpl;
class   ValueObjectList;
class   ValueObjectPrinter;
class   Variable;
class   VariableList;
class   Watchpoint;
class   WatchpointList;
class   WatchpointOptions;
struct  LineEntry;

} // namespace lldb_private

//----------------------------------------------------------------------
// lldb forward declarations
//----------------------------------------------------------------------
namespace lldb {
    
    typedef std::shared_ptr<lldb_private::ABI> ABISP;
    typedef std::shared_ptr<lldb_private::Baton> BatonSP;
    typedef std::shared_ptr<lldb_private::Block> BlockSP;
    typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
    typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
    typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
    typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP;
    typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
    typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
    typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
    typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
    typedef std::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP;
    typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
    typedef std::shared_ptr<lldb_private::Communication> CommunicationSP;
    typedef std::shared_ptr<lldb_private::Connection> ConnectionSP;
    typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
    typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
    typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
    typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP;
    typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP;
    typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
    typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
    typedef std::shared_ptr<lldb_private::Event> EventSP;
    typedef std::shared_ptr<lldb_private::ExecutionContextRef> ExecutionContextRefSP;
    typedef std::shared_ptr<lldb_private::File> FileSP;
    typedef std::shared_ptr<lldb_private::Function> FunctionSP;
    typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
    typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
    typedef std::shared_ptr<lldb_private::Instruction> InstructionSP;
    typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP;
    typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP;
    typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP;
    typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
    typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP;
    typedef std::shared_ptr<lldb_private::LineTable> LineTableSP;
    typedef std::shared_ptr<lldb_private::Listener> ListenerSP;
    typedef std::shared_ptr<lldb_private::LogChannel> LogChannelSP;
    typedef std::shared_ptr<lldb_private::Module> ModuleSP;
    typedef std::weak_ptr<lldb_private::Module> ModuleWP;
    typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
    typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
    typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateSP;
    typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateWP;
    typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP;
    typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP;
    typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP;
    typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP;
    typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP;
    typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP;
    typedef std::shared_ptr<lldb_private::OptionValueDictionary> OptionValueDictionarySP;
    typedef std::shared_ptr<lldb_private::OptionValueFileSpec> OptionValueFileSpecSP;
    typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> OptionValueFileSpecListSP;
    typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP;
    typedef std::shared_ptr<lldb_private::OptionValuePathMappings> OptionValuePathMappingsSP;
    typedef std::shared_ptr<lldb_private::OptionValueProperties> OptionValuePropertiesSP;
    typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP;
    typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP;
    typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP;
    typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP;
    typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP;
    typedef std::shared_ptr<lldb_private::Platform> PlatformSP;
    typedef std::shared_ptr<lldb_private::Process> ProcessSP;
    typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
    typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
    typedef std::weak_ptr<lldb_private::Process> ProcessWP;
    typedef std::shared_ptr<lldb_private::Property> PropertySP;
    typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP;
    typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
    typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
    typedef std::shared_ptr<lldb_private::Queue> QueueSP;
    typedef std::weak_ptr<lldb_private::Queue> QueueWP;
    typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP;
    typedef std::shared_ptr<lldb_private::ScriptInterpreterObject> ScriptInterpreterObjectSP;
#ifndef LLDB_DISABLE_PYTHON
    typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP;
#endif // #ifndef LLDB_DISABLE_PYTHON
    typedef std::shared_ptr<lldb_private::Section> SectionSP;
    typedef std::weak_ptr<lldb_private::Section> SectionWP;
    typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP;
    typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
    typedef std::shared_ptr<lldb_private::Settings> SettingsSP;
    typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP;
    typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP;
    typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
    typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP;
    typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP;
    typedef std::shared_ptr<lldb_private::Stream> StreamSP;
    typedef std::weak_ptr<lldb_private::Stream> StreamWP;
    typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP;
    typedef std::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP;
    typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
    typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
    typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
    typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP;
    typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
    typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP;
    typedef std::shared_ptr<lldb_private::Target> TargetSP;
    typedef std::weak_ptr<lldb_private::Target> TargetWP;
    typedef std::shared_ptr<lldb_private::Thread> ThreadSP;
    typedef std::weak_ptr<lldb_private::Thread> ThreadWP;
    typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
    typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
    typedef std::shared_ptr<lldb_private::Type> TypeSP;
    typedef std::weak_ptr<lldb_private::Type> TypeWP;
    typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
    typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
    typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP;
    typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
    typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
    typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP;
    typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
#ifndef LLDB_DISABLE_PYTHON
    typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> ScriptedSyntheticChildrenSP;
#endif
    typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP;
    typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
    typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP;
    typedef std::shared_ptr<lldb_private::Value> ValueSP;
    typedef std::shared_ptr<lldb_private::ValueList> ValueListSP;
    typedef std::shared_ptr<lldb_private::Variable> VariableSP;
    typedef std::shared_ptr<lldb_private::VariableList> VariableListSP;
    typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
    typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
    
} // namespace lldb


#endif  // #if defined(__cplusplus)
#endif  // LLDB_lldb_forward_h_