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