xref: /NextBSD/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h (revision 84d351007654069f9643c8e4b4802a7f5f08ee42)
1 //===-- lldb-forward.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_forward_h_
11 #define LLDB_lldb_forward_h_
12 
13 #if defined(__cplusplus)
14 
15 #include "lldb/Utility/SharingPtr.h"
16 
17 //----------------------------------------------------------------------
18 // lldb forward declarations
19 //----------------------------------------------------------------------
20 namespace lldb_private {
21 
22 class   ABI;
23 class   Address;
24 class   AddressImpl;
25 class   AddressRange;
26 class   AddressResolver;
27 class   ArchSpec;
28 class   Args;
29 class   ASTResultSynthesizer;
30 class   Baton;
31 class   Block;
32 class   Breakpoint;
33 class   BreakpointID;
34 class   BreakpointIDList;
35 class   BreakpointList;
36 class   BreakpointLocation;
37 class   BreakpointLocationCollection;
38 class   BreakpointLocationList;
39 class   BreakpointOptions;
40 class   BreakpointResolver;
41 class   BreakpointSite;
42 class   BreakpointSiteList;
43 class   BroadcastEventSpec;
44 class   Broadcaster;
45 class   BroadcasterManager;
46 class   CPPLanguageRuntime;
47 class   ClangASTContext;
48 class   ClangASTImporter;
49 class   ClangASTMetadata;
50 class   ClangASTSource;
51 class   ClangASTType;
52 class   ClangNamespaceDecl;
53 class   ClangExpression;
54 class   ClangExpressionDeclMap;
55 class   ClangExpressionParser;
56 class   ClangExpressionVariable;
57 class   ClangExpressionVariableList;
58 class   ClangExpressionVariableList;
59 class   ClangExpressionVariables;
60 class   ClangFunction;
61 class   ClangModulesDeclVendor;
62 class   ClangPersistentVariables;
63 class   ClangUserExpression;
64 class   ClangUtilityFunction;
65 class   CommandInterpreter;
66 class   CommandInterpreterRunOptions;
67 class   CommandObject;
68 class   CommandReturnObject;
69 class   Communication;
70 class   CompactUnwindInfo;
71 class   CompileUnit;
72 class   Condition;
73 class   Connection;
74 class   ConnectionFileDescriptor;
75 class   ConstString;
76 class   CXXSyntheticChildren;
77 class   DWARFCallFrameInfo;
78 class   DWARFExpression;
79 class   DataBuffer;
80 class   DataEncoder;
81 class   DataExtractor;
82 class   Debugger;
83 class   Declaration;
84 class   Disassembler;
85 struct  DumpValueObjectOptions;
86 class   DynamicCheckerFunctions;
87 class   DynamicLoader;
88 class   Editline;
89 class   EmulateInstruction;
90 class   Error;
91 class   EvaluateExpressionOptions;
92 class   Event;
93 class   EventData;
94 class   ExecutionContext;
95 class   ExecutionContextRef;
96 class   ExecutionContextRefLocker;
97 class   ExecutionContextScope;
98 class   File;
99 class   FileSpec;
100 class   FileSpecList;
101 class   Flags;
102 class   TypeCategoryImpl;
103 class   FormatManager;
104 class   FormattersMatchCandidate;
105 class   FuncUnwinders;
106 class   Function;
107 class   FunctionInfo;
108 class   InlineFunctionInfo;
109 class   Instruction;
110 class   InstructionList;
111 class   InstrumentationRuntime;
112 class   IOHandler;
113 class   IOObject;
114 class   IRExecutionUnit;
115 class   JITLoader;
116 class   JITLoaderList;
117 class   LanguageRuntime;
118 class   MemoryRegionInfo;
119 class   LineTable;
120 class   Listener;
121 class   Log;
122 class   LogChannel;
123 class   Mangled;
124 class   Materializer;
125 class   MemoryHistory;
126 class   Module;
127 class   ModuleList;
128 class   ModuleSpec;
129 class   ModuleSpecList;
130 class   Mutex;
131 struct  NameSearchContext;
132 class   ObjCLanguageRuntime;
133 class   ObjectContainer;
134 class   OptionGroup;
135 class   OptionGroupOptions;
136 class   OptionGroupPlatform;
137 class   ObjectFile;
138 class   ObjectFileJITDelegate;
139 class   OperatingSystem;
140 class   Options;
141 class   OptionValue;
142 class   OptionValueArch;
143 class   OptionValueArgs;
144 class   OptionValueArray;
145 class   OptionValueBoolean;
146 class   OptionValueChar;
147 class   OptionValueDictionary;
148 class   OptionValueEnumeration;
149 class   OptionValueFileSpec;
150 class   OptionValueFileSpecList;
151 class   OptionValueFormat;
152 class   OptionValueLanguage;
153 class   OptionValueFormatEntity;
154 class   OptionValuePathMappings;
155 class   OptionValueProperties;
156 class   OptionValueRegex;
157 class   OptionValueSInt64;
158 class   OptionValueString;
159 class   OptionValueUInt64;
160 class   OptionValueUUID;
161 class   NamedOption;
162 class   PathMappingList;
163 class   Platform;
164 class   Process;
165 class   ProcessAttachInfo;
166 class   ProcessModID;
167 class   ProcessInfo;
168 class   ProcessInstanceInfo;
169 class   ProcessInstanceInfoList;
170 class   ProcessInstanceInfoMatch;
171 class   ProcessLaunchInfo;
172 class   Property;
173 struct  PropertyDefinition;
174 class   RegisterCheckpoint;
175 class   RegisterContext;
176 class   RegisterLocation;
177 class   RegisterLocationList;
178 class   RegisterValue;
179 class   RegularExpression;
180 class   Scalar;
181 class   ScriptInterpreter;
182 class   ScriptInterpreterLocker;
183 #ifndef LLDB_DISABLE_PYTHON
184 struct  ScriptSummaryFormat;
185 #endif
186 class   SearchFilter;
187 class   Section;
188 class   SectionImpl;
189 class   SectionList;
190 class   SectionLoadHistory;
191 class   SectionLoadList;
192 class   Settings;
193 class   SourceManager;
194 class   SourceManagerImpl;
195 class   StackFrame;
196 class   StackFrameImpl;
197 class   StackFrameList;
198 class   StackID;
199 class   StopInfo;
200 class   Stoppoint;
201 class   StoppointCallbackContext;
202 class   StoppointLocation;
203 class   Stream;
204 template <unsigned N> class StreamBuffer;
205 class   StreamFile;
206 class   StreamString;
207 class   StringList;
208 struct  StringSummaryFormat;
209 class   SystemRuntime;
210 class   TypeSummaryImpl;
211 class   TypeSummaryOptions;
212 class   Symbol;
213 class   SymbolContext;
214 class   SymbolContextList;
215 class   SymbolContextScope;
216 class   SymbolContextSpecifier;
217 class   SymbolFile;
218 class   SymbolFileType;
219 class   SymbolVendor;
220 class   Symtab;
221 class   SyntheticChildren;
222 class   SyntheticChildrenFrontEnd;
223 class   TypeFilterImpl;
224 #ifndef LLDB_DISABLE_PYTHON
225 class   ScriptedSyntheticChildren;
226 #endif
227 class   Queue;
228 class   QueueItem;
229 class   QueueImpl;
230 class   Target;
231 class   TargetList;
232 class   TargetProperties;
233 class   Thread;
234 class   ThreadCollection;
235 class   ThreadList;
236 class   ThreadPlan;
237 class   ThreadPlanBase;
238 class   ThreadPlanRunToAddress;
239 class   ThreadPlanStepInstruction;
240 class   ThreadPlanStepOut;
241 class   ThreadPlanStepOverBreakpoint;
242 class   ThreadPlanStepRange;
243 class   ThreadPlanStepThrough;
244 class   ThreadPlanTracer;
245 class   ThreadSpec;
246 class   TimeValue;
247 class   Type;
248 class   TypeAndOrName;
249 class   TypeCategoryMap;
250 class   TypeImpl;
251 class   TypeList;
252 class   TypeListImpl;
253 class   TypeMemberImpl;
254 class   TypeMemberFunctionImpl;
255 class   TypeEnumMemberImpl;
256 class   TypeEnumMemberListImpl;
257 class   TypeFormatImpl;
258 class   TypeNameSpecifierImpl;
259 class   TypePair;
260 class   TypeValidatorImpl;
261 class   UUID;
262 class   UnixSignals;
263 class   Unwind;
264 class   UnwindAssembly;
265 class   UnwindPlan;
266 class   UnwindTable;
267 class   VMRange;
268 class   Value;
269 class   ValueList;
270 class   ValueObject;
271 class   ValueObjectChild;
272 class   ValueObjectConstResult;
273 class   ValueObjectConstResultChild;
274 class   ValueObjectConstResultImpl;
275 class   ValueObjectList;
276 class   ValueObjectPrinter;
277 class   Variable;
278 class   VariableList;
279 class   Watchpoint;
280 class   WatchpointList;
281 class   WatchpointOptions;
282 struct  LineEntry;
283 
284 } // namespace lldb_private
285 
286 //----------------------------------------------------------------------
287 // lldb forward declarations
288 //----------------------------------------------------------------------
289 namespace lldb {
290 
291     typedef std::shared_ptr<lldb_private::ABI> ABISP;
292     typedef std::shared_ptr<lldb_private::Baton> BatonSP;
293     typedef std::shared_ptr<lldb_private::Block> BlockSP;
294     typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
295     typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
296     typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
297     typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP;
298     typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
299     typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
300     typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
301     typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
302     typedef std::unique_ptr<lldb_private::ClangASTContext> ClangASTContextUP;
303     typedef std::unique_ptr<lldb_private::ClangASTImporter> ClangASTImporterUP;
304     typedef std::unique_ptr<lldb_private::ClangASTSource> ClangASTSourceUP;
305     typedef std::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP;
306     typedef std::unique_ptr<lldb_private::ClangModulesDeclVendor> ClangModulesDeclVendorUP;
307     typedef std::unique_ptr<lldb_private::ClangPersistentVariables> ClangPersistentVariablesUP;
308     typedef std::shared_ptr<lldb_private::ClangUserExpression> ClangUserExpressionSP;
309     typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
310     typedef std::shared_ptr<lldb_private::Communication> CommunicationSP;
311     typedef std::shared_ptr<lldb_private::Connection> ConnectionSP;
312     typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
313     typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
314     typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
315     typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP;
316     typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP;
317     typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
318     typedef std::unique_ptr<lldb_private::DynamicCheckerFunctions> DynamicCheckerFunctionsUP;
319     typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
320     typedef std::unique_ptr<lldb_private::DynamicLoader> DynamicLoaderUP;
321     typedef std::shared_ptr<lldb_private::Event> EventSP;
322     typedef std::shared_ptr<lldb_private::ExecutionContextRef> ExecutionContextRefSP;
323     typedef std::shared_ptr<lldb_private::File> FileSP;
324     typedef std::shared_ptr<lldb_private::Function> FunctionSP;
325     typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
326     typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
327     typedef std::shared_ptr<lldb_private::Instruction> InstructionSP;
328     typedef std::shared_ptr<lldb_private::InstrumentationRuntime> InstrumentationRuntimeSP;
329     typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP;
330     typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP;
331     typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP;
332     typedef std::unique_ptr<lldb_private::JITLoaderList> JITLoaderListUP;
333     typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
334     typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP;
335     typedef std::unique_ptr<lldb_private::SystemRuntime> SystemRuntimeUP;
336     typedef std::shared_ptr<lldb_private::LineTable> LineTableSP;
337     typedef std::shared_ptr<lldb_private::Listener> ListenerSP;
338     typedef std::shared_ptr<lldb_private::LogChannel> LogChannelSP;
339     typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP;
340     typedef std::shared_ptr<lldb_private::Module> ModuleSP;
341     typedef std::weak_ptr<lldb_private::Module> ModuleWP;
342     typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
343     typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
344     typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateSP;
345     typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateWP;
346     typedef std::unique_ptr<lldb_private::OperatingSystem> OperatingSystemUP;
347     typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP;
348     typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP;
349     typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP;
350     typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP;
351     typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP;
352     typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP;
353     typedef std::shared_ptr<lldb_private::OptionValueDictionary> OptionValueDictionarySP;
354     typedef std::shared_ptr<lldb_private::OptionValueFileSpec> OptionValueFileSpecSP;
355     typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> OptionValueFileSpecListSP;
356     typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP;
357     typedef std::shared_ptr<lldb_private::OptionValuePathMappings> OptionValuePathMappingsSP;
358     typedef std::shared_ptr<lldb_private::OptionValueProperties> OptionValuePropertiesSP;
359     typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP;
360     typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP;
361     typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP;
362     typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP;
363     typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP;
364     typedef std::shared_ptr<lldb_private::Platform> PlatformSP;
365     typedef std::shared_ptr<lldb_private::Process> ProcessSP;
366     typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
367     typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
368     typedef std::weak_ptr<lldb_private::Process> ProcessWP;
369     typedef std::shared_ptr<lldb_private::Property> PropertySP;
370     typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP;
371     typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
372     typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
373     typedef std::shared_ptr<lldb_private::Queue> QueueSP;
374     typedef std::weak_ptr<lldb_private::Queue> QueueWP;
375     typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP;
376 #ifndef LLDB_DISABLE_PYTHON
377     typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP;
378 #endif // #ifndef LLDB_DISABLE_PYTHON
379     typedef std::shared_ptr<lldb_private::Section> SectionSP;
380     typedef std::unique_ptr<lldb_private::SectionList> SectionListUP;
381     typedef std::weak_ptr<lldb_private::Section> SectionWP;
382     typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP;
383     typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
384     typedef std::shared_ptr<lldb_private::Settings> SettingsSP;
385     typedef std::unique_ptr<lldb_private::SourceManager> SourceManagerUP;
386     typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP;
387     typedef std::unique_ptr<lldb_private::StackFrame> StackFrameUP;
388     typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP;
389     typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
390     typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP;
391     typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP;
392     typedef std::shared_ptr<lldb_private::Stream> StreamSP;
393     typedef std::weak_ptr<lldb_private::Stream> StreamWP;
394     typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP;
395     typedef std::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP;
396     typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
397     typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
398     typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
399     typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP;
400     typedef std::unique_ptr<lldb_private::SymbolVendor> SymbolVendorUP;
401     typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
402     typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP;
403     typedef std::shared_ptr<lldb_private::Target> TargetSP;
404     typedef std::weak_ptr<lldb_private::Target> TargetWP;
405     typedef std::shared_ptr<lldb_private::TargetProperties> TargetPropertiesSP;
406     typedef std::shared_ptr<lldb_private::Thread> ThreadSP;
407     typedef std::weak_ptr<lldb_private::Thread> ThreadWP;
408     typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP;
409     typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
410     typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
411     typedef std::shared_ptr<lldb_private::Type> TypeSP;
412     typedef std::weak_ptr<lldb_private::Type> TypeWP;
413     typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
414     typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
415     typedef std::shared_ptr<lldb_private::TypeMemberFunctionImpl> TypeMemberFunctionImplSP;
416     typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP;
417     typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
418     typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
419     typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP;
420     typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
421     typedef std::shared_ptr<lldb_private::TypeSummaryOptions> TypeSummaryOptionsSP;
422     typedef std::shared_ptr<lldb_private::TypeValidatorImpl> TypeValidatorImplSP;
423 #ifndef LLDB_DISABLE_PYTHON
424     typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> ScriptedSyntheticChildrenSP;
425 #endif
426     typedef std::shared_ptr<lldb_private::UnixSignals> UnixSignalsSP;
427     typedef std::weak_ptr<lldb_private::UnixSignals> UnixSignalsWP;
428     typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP;
429     typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
430     typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP;
431     typedef std::shared_ptr<lldb_private::Value> ValueSP;
432     typedef std::shared_ptr<lldb_private::ValueList> ValueListSP;
433     typedef std::shared_ptr<lldb_private::Variable> VariableSP;
434     typedef std::shared_ptr<lldb_private::VariableList> VariableListSP;
435     typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
436     typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
437 
438 } // namespace lldb
439 
440 
441 #endif  // #if defined(__cplusplus)
442 #endif  // LLDB_lldb_forward_h_
443