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