1 //===-- lldb-forward.h ------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_lldb_forward_h_
11 #define LLDB_lldb_forward_h_
13 #if defined(__cplusplus)
15 #include "lldb/Utility/SharingPtr.h"
17 //----------------------------------------------------------------------
18 // lldb forward declarations
19 //----------------------------------------------------------------------
20 namespace lldb_private {
26 class AddressResolver;
29 class ASTResultSynthesizer;
34 class BreakpointIDList;
36 class BreakpointLocation;
37 class BreakpointLocationCollection;
38 class BreakpointLocationList;
39 class BreakpointOptions;
40 class BreakpointResolver;
42 class BreakpointSiteList;
43 class BroadcastEventSpec;
45 class BroadcasterManager;
46 class CPPLanguageRuntime;
47 class ClangASTContext;
48 class ClangASTImporter;
49 class ClangASTMetadata;
52 class ClangNamespaceDecl;
53 class ClangExpression;
54 class ClangExpressionDeclMap;
55 class ClangExpressionParser;
56 class ClangExpressionVariable;
57 class ClangExpressionVariableList;
58 class ClangExpressionVariableList;
59 class ClangExpressionVariables;
61 class ClangPersistentVariables;
62 class ClangUserExpression;
63 class ClangUtilityFunction;
64 class CommandInterpreter;
66 class CommandReturnObject;
71 class ConnectionFileDescriptor;
73 class CXXSyntheticChildren;
74 class DWARFCallFrameInfo;
75 class DWARFExpression;
84 class EmulateInstruction;
86 class EvaluateExpressionOptions;
89 class ExecutionContext;
90 class ExecutionContextRef;
91 class ExecutionContextRefLocker;
92 class ExecutionContextScope;
96 class TypeCategoryImpl;
101 class InlineFunctionInfo;
104 class InstructionList;
105 class IRExecutionUnit;
106 class LanguageRuntime;
116 class ModuleSpecList;
118 struct NameSearchContext;
119 class ObjCLanguageRuntime;
120 class ObjectContainer;
122 class OptionGroupPlatform;
124 class OperatingSystem;
127 class OptionValueArch;
128 class OptionValueArgs;
129 class OptionValueArray;
130 class OptionValueBoolean;
131 class OptionValueDictionary;
132 class OptionValueEnumeration;
133 class OptionValueFileSpec;
134 class OptionValueFileSpecList;
135 class OptionValueFormat;
136 class OptionValuePathMappings;
137 class OptionValueProperties;
138 class OptionValueRegex;
139 class OptionValueSInt64;
140 class OptionValueString;
141 class OptionValueUInt64;
142 class OptionValueUUID;
144 class PathMappingList;
147 class ProcessAttachInfo;
150 class ProcessInstanceInfo;
151 class ProcessInstanceInfoList;
152 class ProcessInstanceInfoMatch;
153 class ProcessLaunchInfo;
155 struct PropertyDefinition;
157 class PythonDictionary;
161 class RegisterContext;
162 class RegisterLocation;
163 class RegisterLocationList;
165 class RegularExpression;
167 class ScriptInterpreter;
168 class ScriptInterpreterLocker;
169 class ScriptInterpreterObject;
170 #ifndef LLDB_DISABLE_PYTHON
171 class ScriptInterpreterPython;
172 struct ScriptSummaryFormat;
180 class SourceManagerImpl;
182 class StackFrameImpl;
183 class StackFrameList;
187 class StoppointCallbackContext;
188 class StoppointLocation;
190 template <unsigned N> class StreamBuffer;
194 struct StringSummaryFormat;
195 class TypeSummaryImpl;
198 class SymbolContextList;
199 class SymbolContextScope;
200 class SymbolContextSpecifier;
202 class SymbolFileType;
205 class SyntheticChildren;
206 class SyntheticChildrenFrontEnd;
207 class TypeFilterImpl;
208 #ifndef LLDB_DISABLE_PYTHON
209 class ScriptedSyntheticChildren;
216 class ThreadPlanBase;
217 class ThreadPlanRunToAddress;
218 class ThreadPlanStepInstruction;
219 class ThreadPlanStepOut;
220 class ThreadPlanStepOverBreakpoint;
221 class ThreadPlanStepRange;
222 class ThreadPlanStepThrough;
223 class ThreadPlanTracer;
227 class TypeCategoryMap;
232 class TypeMemberImpl;
233 class TypeNameSpecifierImpl;
236 class UnwindAssembly;
241 class TypeFormatImpl;
244 class ValueObjectChild;
245 class ValueObjectConstResult;
246 class ValueObjectConstResultChild;
247 class ValueObjectConstResultImpl;
248 class ValueObjectList;
252 class WatchpointList;
253 class WatchpointOptions;
256 } // namespace lldb_private
258 //----------------------------------------------------------------------
259 // lldb forward declarations
260 //----------------------------------------------------------------------
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;
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;
377 #endif // #if defined(__cplusplus)
378 #endif // LLDB_lldb_forward_h_