]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/lldb-forward.h
MFV r277432:
[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   CommandObject;
66 class   CommandReturnObject;
67 class   Communication;
68 class   CompileUnit;
69 class   Condition;
70 class   Connection;
71 class   ConnectionFileDescriptor;
72 class   ConstString;
73 class   CXXSyntheticChildren;
74 class   DWARFCallFrameInfo;
75 class   DWARFExpression;
76 class   DataBuffer;
77 class   DataEncoder;
78 class   DataExtractor;
79 class   Debugger;
80 class   Declaration;
81 class   Disassembler;
82 struct  DumpValueObjectOptions;
83 class   DynamicLoader;
84 class   Editline;
85 class   EmulateInstruction;
86 class   Error;
87 class   EvaluateExpressionOptions;
88 class   Event;
89 class   EventData;
90 class   ExecutionContext;
91 class   ExecutionContextRef;
92 class   ExecutionContextRefLocker;
93 class   ExecutionContextScope;
94 class   File;
95 class   FileSpec;
96 class   FileSpecList;
97 class   Flags;
98 class   TypeCategoryImpl;
99 class   FormatManager;
100 class   FormattersMatchCandidate;
101 class   FuncUnwinders;
102 class   Function;
103 class   FunctionInfo;
104 class   InlineFunctionInfo;
105 class   Instruction;
106 class   InstructionList;
107 class   IOHandler;
108 class   IOObject;
109 class   IRExecutionUnit;
110 class   JITLoader;
111 class   LanguageRuntime;
112 class   SystemRuntime;
113 class   LineTable;
114 class   Listener;
115 class   Log;
116 class   LogChannel;
117 class   Mangled;
118 class   Materializer;
119 class   Module;
120 class   ModuleList;
121 class   ModuleSpec;
122 class   ModuleSpecList;
123 class   Mutex;
124 struct  NameSearchContext;
125 class   ObjCLanguageRuntime;
126 class   ObjectContainer;
127 class   OptionGroup;
128 class   OptionGroupOptions;
129 class   OptionGroupPlatform;
130 class   ObjectFile;
131 class   ObjectFileJITDelegate;
132 class   OperatingSystem;
133 class   Options;
134 class   OptionValue;
135 class   OptionValueArch;
136 class   OptionValueArgs;
137 class   OptionValueArray;
138 class   OptionValueBoolean;
139 class   OptionValueDictionary;
140 class   OptionValueEnumeration;
141 class   OptionValueFileSpec;
142 class   OptionValueFileSpecList;
143 class   OptionValueFormat;
144 class   OptionValuePathMappings;
145 class   OptionValueProperties;
146 class   OptionValueRegex;
147 class   OptionValueSInt64;
148 class   OptionValueString;
149 class   OptionValueUInt64;
150 class   OptionValueUUID;
151 class   NamedOption;
152 class   PathMappingList;
153 class   Platform;
154 class   Process;
155 class   ProcessAttachInfo;
156 class   ProcessModID;
157 class   ProcessInfo;
158 class   ProcessInstanceInfo;
159 class   ProcessInstanceInfoList;
160 class   ProcessInstanceInfoMatch;
161 class   ProcessLaunchInfo;
162 class   Property;
163 struct  PropertyDefinition;
164 class   PythonArray;
165 class   PythonDictionary;
166 class   PythonInteger;
167 class   PythonObject;
168 class   PythonString;
169 class   RegisterCheckpoint;
170 class   RegisterContext;
171 class   RegisterLocation;
172 class   RegisterLocationList;
173 class   RegisterValue;
174 class   RegularExpression;
175 class   Scalar;
176 class   ScriptInterpreter;
177 class   ScriptInterpreterLocker;
178 class   ScriptInterpreterObject;
179 #ifndef LLDB_DISABLE_PYTHON
180 class   ScriptInterpreterPython;
181 struct  ScriptSummaryFormat;
182 #endif
183 class   SearchFilter;
184 class   Section;
185 class   SectionImpl;
186 class   SectionList;
187 class   SectionLoadHistory;
188 class   SectionLoadList;
189 class   Settings;
190 class   SourceManager;
191 class   SourceManagerImpl;
192 class   StackFrame;
193 class   StackFrameImpl;
194 class   StackFrameList;
195 class   StackID;
196 class   StopInfo;
197 class   Stoppoint;
198 class   StoppointCallbackContext;
199 class   StoppointLocation;
200 class   Stream;
201 template <unsigned N> class StreamBuffer;
202 class   StreamFile;
203 class   StreamString;
204 class   StringList;
205 struct  StringSummaryFormat;
206 class   TypeSummaryImpl;
207 class   Symbol;
208 class   SymbolContext;
209 class   SymbolContextList;
210 class   SymbolContextScope;
211 class   SymbolContextSpecifier;
212 class   SymbolFile;
213 class   SymbolFileType;
214 class   SymbolVendor;
215 class   Symtab;
216 class   SyntheticChildren;
217 class   SyntheticChildrenFrontEnd;
218 class   TypeFilterImpl;
219 #ifndef LLDB_DISABLE_PYTHON
220 class   ScriptedSyntheticChildren;
221 #endif
222 class   Queue;
223 class   QueueItem;
224 class   QueueImpl;
225 class   Target;
226 class   TargetList;
227 class   Thread;
228 class   ThreadList;
229 class   ThreadPlan;
230 class   ThreadPlanBase;
231 class   ThreadPlanRunToAddress;
232 class   ThreadPlanStepInstruction;
233 class   ThreadPlanStepOut;
234 class   ThreadPlanStepOverBreakpoint;
235 class   ThreadPlanStepRange;
236 class   ThreadPlanStepThrough;
237 class   ThreadPlanTracer;
238 class   ThreadSpec;
239 class   TimeValue;
240 class   Type;
241 class   TypeAndOrName;
242 class   TypeCategoryMap;
243 class   TypeImpl;
244 class   TypeList;
245 class   TypeListImpl;
246 class   TypeMemberImpl;
247 class   TypeEnumMemberImpl;
248 class   TypeEnumMemberListImpl;
249 class   TypeNameSpecifierImpl;
250 class   TypePair;
251 class   UUID;
252 class   UnixSignals;
253 class   Unwind;
254 class   UnwindAssembly;
255 class   UnwindPlan;
256 class   UnwindTable;
257 class   VMRange;
258 class   Value;
259 class   TypeFormatImpl;
260 class   ValueList;
261 class   ValueObject;
262 class   ValueObjectChild;
263 class   ValueObjectConstResult;
264 class   ValueObjectConstResultChild;
265 class   ValueObjectConstResultImpl;
266 class   ValueObjectList;
267 class   ValueObjectPrinter;
268 class   Variable;
269 class   VariableList;
270 class   Watchpoint;
271 class   WatchpointList;
272 class   WatchpointOptions;
273 struct  LineEntry;
274
275 } // namespace lldb_private
276
277 //----------------------------------------------------------------------
278 // lldb forward declarations
279 //----------------------------------------------------------------------
280 namespace lldb {
281     
282     typedef std::shared_ptr<lldb_private::ABI> ABISP;
283     typedef std::shared_ptr<lldb_private::Baton> BatonSP;
284     typedef std::shared_ptr<lldb_private::Block> BlockSP;
285     typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
286     typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
287     typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
288     typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP;
289     typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
290     typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
291     typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
292     typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
293     typedef std::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP;
294     typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
295     typedef std::shared_ptr<lldb_private::Communication> CommunicationSP;
296     typedef std::shared_ptr<lldb_private::Connection> ConnectionSP;
297     typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
298     typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
299     typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
300     typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP;
301     typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP;
302     typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
303     typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
304     typedef std::shared_ptr<lldb_private::Event> EventSP;
305     typedef std::shared_ptr<lldb_private::ExecutionContextRef> ExecutionContextRefSP;
306     typedef std::shared_ptr<lldb_private::File> FileSP;
307     typedef std::shared_ptr<lldb_private::Function> FunctionSP;
308     typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
309     typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
310     typedef std::shared_ptr<lldb_private::Instruction> InstructionSP;
311     typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP;
312     typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP;
313     typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP;
314     typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
315     typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP;
316     typedef std::shared_ptr<lldb_private::LineTable> LineTableSP;
317     typedef std::shared_ptr<lldb_private::Listener> ListenerSP;
318     typedef std::shared_ptr<lldb_private::LogChannel> LogChannelSP;
319     typedef std::shared_ptr<lldb_private::Module> ModuleSP;
320     typedef std::weak_ptr<lldb_private::Module> ModuleWP;
321     typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
322     typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
323     typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateSP;
324     typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateWP;
325     typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP;
326     typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP;
327     typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP;
328     typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP;
329     typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP;
330     typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP;
331     typedef std::shared_ptr<lldb_private::OptionValueDictionary> OptionValueDictionarySP;
332     typedef std::shared_ptr<lldb_private::OptionValueFileSpec> OptionValueFileSpecSP;
333     typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> OptionValueFileSpecListSP;
334     typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP;
335     typedef std::shared_ptr<lldb_private::OptionValuePathMappings> OptionValuePathMappingsSP;
336     typedef std::shared_ptr<lldb_private::OptionValueProperties> OptionValuePropertiesSP;
337     typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP;
338     typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP;
339     typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP;
340     typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP;
341     typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP;
342     typedef std::shared_ptr<lldb_private::Platform> PlatformSP;
343     typedef std::shared_ptr<lldb_private::Process> ProcessSP;
344     typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
345     typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
346     typedef std::weak_ptr<lldb_private::Process> ProcessWP;
347     typedef std::shared_ptr<lldb_private::Property> PropertySP;
348     typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP;
349     typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
350     typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
351     typedef std::shared_ptr<lldb_private::Queue> QueueSP;
352     typedef std::weak_ptr<lldb_private::Queue> QueueWP;
353     typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP;
354     typedef std::shared_ptr<lldb_private::ScriptInterpreterObject> ScriptInterpreterObjectSP;
355 #ifndef LLDB_DISABLE_PYTHON
356     typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP;
357 #endif // #ifndef LLDB_DISABLE_PYTHON
358     typedef std::shared_ptr<lldb_private::Section> SectionSP;
359     typedef std::weak_ptr<lldb_private::Section> SectionWP;
360     typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP;
361     typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
362     typedef std::shared_ptr<lldb_private::Settings> SettingsSP;
363     typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP;
364     typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP;
365     typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
366     typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP;
367     typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP;
368     typedef std::shared_ptr<lldb_private::Stream> StreamSP;
369     typedef std::weak_ptr<lldb_private::Stream> StreamWP;
370     typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP;
371     typedef std::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP;
372     typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
373     typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
374     typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
375     typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP;
376     typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
377     typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP;
378     typedef std::shared_ptr<lldb_private::Target> TargetSP;
379     typedef std::weak_ptr<lldb_private::Target> TargetWP;
380     typedef std::shared_ptr<lldb_private::Thread> ThreadSP;
381     typedef std::weak_ptr<lldb_private::Thread> ThreadWP;
382     typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
383     typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
384     typedef std::shared_ptr<lldb_private::Type> TypeSP;
385     typedef std::weak_ptr<lldb_private::Type> TypeWP;
386     typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
387     typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
388     typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP;
389     typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
390     typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
391     typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP;
392     typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
393 #ifndef LLDB_DISABLE_PYTHON
394     typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> ScriptedSyntheticChildrenSP;
395 #endif
396     typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP;
397     typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
398     typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP;
399     typedef std::shared_ptr<lldb_private::Value> ValueSP;
400     typedef std::shared_ptr<lldb_private::ValueList> ValueListSP;
401     typedef std::shared_ptr<lldb_private::Variable> VariableSP;
402     typedef std::shared_ptr<lldb_private::VariableList> VariableListSP;
403     typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
404     typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
405     
406 } // namespace lldb
407
408
409 #endif  // #if defined(__cplusplus)
410 #endif  // LLDB_lldb_forward_h_