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;
82 struct DumpValueObjectOptions;
86 class EmulateInstruction;
88 class EvaluateExpressionOptions;
91 class ExecutionContext;
92 class ExecutionContextRef;
93 class ExecutionContextRefLocker;
94 class ExecutionContextScope;
99 class TypeCategoryImpl;
101 class FormattersMatchCandidate;
105 class InlineFunctionInfo;
107 class InstructionList;
109 class IRExecutionUnit;
110 class LanguageRuntime;
121 class ModuleSpecList;
123 struct NameSearchContext;
124 class ObjCLanguageRuntime;
125 class ObjectContainer;
127 class OptionGroupOptions;
128 class OptionGroupPlatform;
130 class OperatingSystem;
133 class OptionValueArch;
134 class OptionValueArgs;
135 class OptionValueArray;
136 class OptionValueBoolean;
137 class OptionValueDictionary;
138 class OptionValueEnumeration;
139 class OptionValueFileSpec;
140 class OptionValueFileSpecList;
141 class OptionValueFormat;
142 class OptionValuePathMappings;
143 class OptionValueProperties;
144 class OptionValueRegex;
145 class OptionValueSInt64;
146 class OptionValueString;
147 class OptionValueUInt64;
148 class OptionValueUUID;
150 class PathMappingList;
153 class ProcessAttachInfo;
156 class ProcessInstanceInfo;
157 class ProcessInstanceInfoList;
158 class ProcessInstanceInfoMatch;
159 class ProcessLaunchInfo;
161 struct PropertyDefinition;
163 class PythonDictionary;
167 class RegisterCheckpoint;
168 class RegisterContext;
169 class RegisterLocation;
170 class RegisterLocationList;
172 class RegularExpression;
174 class ScriptInterpreter;
175 class ScriptInterpreterLocker;
176 class ScriptInterpreterObject;
177 #ifndef LLDB_DISABLE_PYTHON
178 class ScriptInterpreterPython;
179 struct ScriptSummaryFormat;
185 class SectionLoadHistory;
186 class SectionLoadList;
189 class SourceManagerImpl;
191 class StackFrameImpl;
192 class StackFrameList;
196 class StoppointCallbackContext;
197 class StoppointLocation;
199 template <unsigned N> class StreamBuffer;
203 struct StringSummaryFormat;
204 class TypeSummaryImpl;
207 class SymbolContextList;
208 class SymbolContextScope;
209 class SymbolContextSpecifier;
211 class SymbolFileType;
214 class SyntheticChildren;
215 class SyntheticChildrenFrontEnd;
216 class TypeFilterImpl;
217 #ifndef LLDB_DISABLE_PYTHON
218 class ScriptedSyntheticChildren;
228 class ThreadPlanBase;
229 class ThreadPlanRunToAddress;
230 class ThreadPlanStepInstruction;
231 class ThreadPlanStepOut;
232 class ThreadPlanStepOverBreakpoint;
233 class ThreadPlanStepRange;
234 class ThreadPlanStepThrough;
235 class ThreadPlanTracer;
240 class TypeCategoryMap;
244 class TypeMemberImpl;
245 class TypeNameSpecifierImpl;
249 class UnwindAssembly;
254 class TypeFormatImpl;
257 class ValueObjectChild;
258 class ValueObjectConstResult;
259 class ValueObjectConstResultChild;
260 class ValueObjectConstResultImpl;
261 class ValueObjectList;
262 class ValueObjectPrinter;
266 class WatchpointList;
267 class WatchpointOptions;
270 } // namespace lldb_private
272 //----------------------------------------------------------------------
273 // lldb forward declarations
274 //----------------------------------------------------------------------
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;
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;
400 #endif // #if defined(__cplusplus)
401 #endif // LLDB_lldb_forward_h_