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