]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/lldb-forward.h
Update LLDB snapshot to upstream r225923 (git 2b588ecd)
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / lldb-forward.h
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   ClangPersistentVariables;
62 class   ClangUserExpression;
63 class   ClangUtilityFunction;
64 class   CommandInterpreter;
65 class   CommandInterpreterRunOptions;
66 class   CommandObject;
67 class   CommandReturnObject;
68 class   Communication;
69 class   CompactUnwindInfo;
70 class   CompileUnit;
71 class   Condition;
72 class   Connection;
73 class   ConnectionFileDescriptor;
74 class   ConstString;
75 class   CXXSyntheticChildren;
76 class   DWARFCallFrameInfo;
77 class   DWARFExpression;
78 class   DataBuffer;
79 class   DataEncoder;
80 class   DataExtractor;
81 class   Debugger;
82 class   Declaration;
83 class   Disassembler;
84 struct  DumpValueObjectOptions;
85 class   DynamicLoader;
86 class   Editline;
87 class   EmulateInstruction;
88 class   Error;
89 class   EvaluateExpressionOptions;
90 class   Event;
91 class   EventData;
92 class   ExecutionContext;
93 class   ExecutionContextRef;
94 class   ExecutionContextRefLocker;
95 class   ExecutionContextScope;
96 class   File;
97 class   FileSpec;
98 class   FileSpecList;
99 class   Flags;
100 class   TypeCategoryImpl;
101 class   FormatManager;
102 class   FormattersMatchCandidate;
103 class   FuncUnwinders;
104 class   Function;
105 class   FunctionInfo;
106 class   InlineFunctionInfo;
107 class   Instruction;
108 class   InstructionList;
109 class   InstrumentationRuntime;
110 class   IOHandler;
111 class   IOObject;
112 class   IRExecutionUnit;
113 class   JITLoader;
114 class   LanguageRuntime;
115 class   SystemRuntime;
116 class   LineTable;
117 class   Listener;
118 class   Log;
119 class   LogChannel;
120 class   Mangled;
121 class   Materializer;
122 class   MemoryHistory;
123 class   Module;
124 class   ModuleList;
125 class   ModuleSpec;
126 class   ModuleSpecList;
127 class   Mutex;
128 struct  NameSearchContext;
129 class   ObjCLanguageRuntime;
130 class   ObjectContainer;
131 class   OptionGroup;
132 class   OptionGroupOptions;
133 class   OptionGroupPlatform;
134 class   ObjectFile;
135 class   ObjectFileJITDelegate;
136 class   OperatingSystem;
137 class   Options;
138 class   OptionValue;
139 class   OptionValueArch;
140 class   OptionValueArgs;
141 class   OptionValueArray;
142 class   OptionValueBoolean;
143 class   OptionValueChar;
144 class   OptionValueDictionary;
145 class   OptionValueEnumeration;
146 class   OptionValueFileSpec;
147 class   OptionValueFileSpecList;
148 class   OptionValueFormat;
149 class   OptionValuePathMappings;
150 class   OptionValueProperties;
151 class   OptionValueRegex;
152 class   OptionValueSInt64;
153 class   OptionValueString;
154 class   OptionValueUInt64;
155 class   OptionValueUUID;
156 class   NamedOption;
157 class   PathMappingList;
158 class   Platform;
159 class   Process;
160 class   ProcessAttachInfo;
161 class   ProcessModID;
162 class   ProcessInfo;
163 class   ProcessInstanceInfo;
164 class   ProcessInstanceInfoList;
165 class   ProcessInstanceInfoMatch;
166 class   ProcessLaunchInfo;
167 class   Property;
168 struct  PropertyDefinition;
169 class   PythonArray;
170 class   PythonDictionary;
171 class   PythonInteger;
172 class   PythonObject;
173 class   PythonString;
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 class   ScriptInterpreterObject;
184 #ifndef LLDB_DISABLE_PYTHON
185 class   ScriptInterpreterPython;
186 struct  ScriptSummaryFormat;
187 #endif
188 class   SearchFilter;
189 class   Section;
190 class   SectionImpl;
191 class   SectionList;
192 class   SectionLoadHistory;
193 class   SectionLoadList;
194 class   Settings;
195 class   SourceManager;
196 class   SourceManagerImpl;
197 class   StackFrame;
198 class   StackFrameImpl;
199 class   StackFrameList;
200 class   StackID;
201 class   StopInfo;
202 class   Stoppoint;
203 class   StoppointCallbackContext;
204 class   StoppointLocation;
205 class   Stream;
206 template <unsigned N> class StreamBuffer;
207 class   StreamFile;
208 class   StreamString;
209 class   StringList;
210 struct  StringSummaryFormat;
211 class   TypeSummaryImpl;
212 class   TypeSummaryOptions;
213 class   Symbol;
214 class   SymbolContext;
215 class   SymbolContextList;
216 class   SymbolContextScope;
217 class   SymbolContextSpecifier;
218 class   SymbolFile;
219 class   SymbolFileType;
220 class   SymbolVendor;
221 class   Symtab;
222 class   SyntheticChildren;
223 class   SyntheticChildrenFrontEnd;
224 class   TypeFilterImpl;
225 #ifndef LLDB_DISABLE_PYTHON
226 class   ScriptedSyntheticChildren;
227 #endif
228 class   Queue;
229 class   QueueItem;
230 class   QueueImpl;
231 class   Target;
232 class   TargetList;
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::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP;
303     typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
304     typedef std::shared_ptr<lldb_private::Communication> CommunicationSP;
305     typedef std::shared_ptr<lldb_private::Connection> ConnectionSP;
306     typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
307     typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
308     typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
309     typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP;
310     typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP;
311     typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
312     typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
313     typedef std::shared_ptr<lldb_private::Event> EventSP;
314     typedef std::shared_ptr<lldb_private::ExecutionContextRef> ExecutionContextRefSP;
315     typedef std::shared_ptr<lldb_private::File> FileSP;
316     typedef std::shared_ptr<lldb_private::Function> FunctionSP;
317     typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
318     typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
319     typedef std::shared_ptr<lldb_private::Instruction> InstructionSP;
320     typedef std::shared_ptr<lldb_private::InstrumentationRuntime> InstrumentationRuntimeSP;
321     typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP;
322     typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP;
323     typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP;
324     typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
325     typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP;
326     typedef std::shared_ptr<lldb_private::LineTable> LineTableSP;
327     typedef std::shared_ptr<lldb_private::Listener> ListenerSP;
328     typedef std::shared_ptr<lldb_private::LogChannel> LogChannelSP;
329     typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP;
330     typedef std::shared_ptr<lldb_private::Module> ModuleSP;
331     typedef std::weak_ptr<lldb_private::Module> ModuleWP;
332     typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
333     typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
334     typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateSP;
335     typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateWP;
336     typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP;
337     typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP;
338     typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP;
339     typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP;
340     typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP;
341     typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP;
342     typedef std::shared_ptr<lldb_private::OptionValueDictionary> OptionValueDictionarySP;
343     typedef std::shared_ptr<lldb_private::OptionValueFileSpec> OptionValueFileSpecSP;
344     typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> OptionValueFileSpecListSP;
345     typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP;
346     typedef std::shared_ptr<lldb_private::OptionValuePathMappings> OptionValuePathMappingsSP;
347     typedef std::shared_ptr<lldb_private::OptionValueProperties> OptionValuePropertiesSP;
348     typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP;
349     typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP;
350     typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP;
351     typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP;
352     typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP;
353     typedef std::shared_ptr<lldb_private::Platform> PlatformSP;
354     typedef std::shared_ptr<lldb_private::Process> ProcessSP;
355     typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
356     typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
357     typedef std::weak_ptr<lldb_private::Process> ProcessWP;
358     typedef std::shared_ptr<lldb_private::Property> PropertySP;
359     typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP;
360     typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
361     typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
362     typedef std::shared_ptr<lldb_private::Queue> QueueSP;
363     typedef std::weak_ptr<lldb_private::Queue> QueueWP;
364     typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP;
365     typedef std::shared_ptr<lldb_private::ScriptInterpreterObject> ScriptInterpreterObjectSP;
366 #ifndef LLDB_DISABLE_PYTHON
367     typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP;
368 #endif // #ifndef LLDB_DISABLE_PYTHON
369     typedef std::shared_ptr<lldb_private::Section> SectionSP;
370     typedef std::weak_ptr<lldb_private::Section> SectionWP;
371     typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP;
372     typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
373     typedef std::shared_ptr<lldb_private::Settings> SettingsSP;
374     typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP;
375     typedef std::unique_ptr<lldb_private::StackFrame> StackFrameUP;
376     typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP;
377     typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
378     typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP;
379     typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP;
380     typedef std::shared_ptr<lldb_private::Stream> StreamSP;
381     typedef std::weak_ptr<lldb_private::Stream> StreamWP;
382     typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP;
383     typedef std::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP;
384     typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
385     typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
386     typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
387     typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP;
388     typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
389     typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP;
390     typedef std::shared_ptr<lldb_private::Target> TargetSP;
391     typedef std::weak_ptr<lldb_private::Target> TargetWP;
392     typedef std::shared_ptr<lldb_private::Thread> ThreadSP;
393     typedef std::weak_ptr<lldb_private::Thread> ThreadWP;
394     typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP;
395     typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
396     typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
397     typedef std::shared_ptr<lldb_private::Type> TypeSP;
398     typedef std::weak_ptr<lldb_private::Type> TypeWP;
399     typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
400     typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
401     typedef std::shared_ptr<lldb_private::TypeMemberFunctionImpl> TypeMemberFunctionImplSP;
402     typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP;
403     typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
404     typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
405     typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP;
406     typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
407     typedef std::shared_ptr<lldb_private::TypeSummaryOptions> TypeSummaryOptionsSP;
408     typedef std::shared_ptr<lldb_private::TypeValidatorImpl> TypeValidatorImplSP;
409 #ifndef LLDB_DISABLE_PYTHON
410     typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> ScriptedSyntheticChildrenSP;
411 #endif
412     typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP;
413     typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
414     typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP;
415     typedef std::shared_ptr<lldb_private::Value> ValueSP;
416     typedef std::shared_ptr<lldb_private::ValueList> ValueListSP;
417     typedef std::shared_ptr<lldb_private::Variable> VariableSP;
418     typedef std::shared_ptr<lldb_private::VariableList> VariableListSP;
419     typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
420     typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
421     
422 } // namespace lldb
423
424
425 #endif  // #if defined(__cplusplus)
426 #endif  // LLDB_lldb_forward_h_