]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/lldb-forward.h
Merge ^/head r317216 through r317280.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / lldb-forward.h
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 //----------------------------------------------------------------------
20 namespace lldb_private {
21
22 class ABI;
23 class Address;
24 class AddressImpl;
25 class AddressRange;
26 class AddressResolver;
27 class ArchSpec;
28 class ArmUnwindInfo;
29 class Args;
30 class ASTResultSynthesizer;
31 class ASTStructExtractor;
32 class Baton;
33 class Block;
34 class Breakpoint;
35 class BreakpointID;
36 class BreakpointIDList;
37 class BreakpointList;
38 class BreakpointLocation;
39 class BreakpointLocationCollection;
40 class BreakpointLocationList;
41 class BreakpointOptions;
42 class BreakpointResolver;
43 class BreakpointSite;
44 class BreakpointSiteList;
45 class BroadcastEventSpec;
46 class Broadcaster;
47 class BroadcasterManager;
48 class CPPLanguageRuntime;
49 class ClangASTContext;
50 class ClangASTImporter;
51 class ClangASTMetadata;
52 class ClangASTSource;
53 class ClangExpressionDeclMap;
54 class ClangExpressionParser;
55 class ClangExpressionVariable;
56 class ClangExpressionVariables;
57 class ClangModulesDeclVendor;
58 class ClangPersistentVariables;
59 class CommandInterpreter;
60 class CommandInterpreterRunOptions;
61 class CommandObject;
62 class CommandObjectMultiword;
63 class CommandReturnObject;
64 class Communication;
65 class CompactUnwindInfo;
66 struct CompilerContext;
67 class CompilerDecl;
68 class CompilerDeclContext;
69 class CompilerType;
70 class CompileUnit;
71 class Condition;
72 class Connection;
73 class ConnectionFileDescriptor;
74 class ConstString;
75 class CXXSyntheticChildren;
76 class DWARFCallFrameInfo;
77 class DWARFExpression;
78 class DataBuffer;
79 class DataEncoder;
80 class DataExtractor;
81 class Debugger;
82 class Declaration;
83 class DiagnosticManager;
84 class Disassembler;
85 class DumpValueObjectOptions;
86 class DynamicCheckerFunctions;
87 class DynamicLoader;
88 class Editline;
89 class EmulateInstruction;
90 class Error;
91 class EvaluateExpressionOptions;
92 class Event;
93 class EventData;
94 class EventDataStructuredData;
95 class ExecutionContext;
96 class ExecutionContextRef;
97 class ExecutionContextRefLocker;
98 class ExecutionContextScope;
99 class Expression;
100 class ExpressionVariable;
101 class ExpressionVariableList;
102 class ExpressionTypeSystemHelper;
103 class File;
104 class FileSpec;
105 class FileSpecList;
106 class Flags;
107 class GoASTContext;
108 class TypeCategoryImpl;
109 class FormatManager;
110 class FormattersMatchCandidate;
111 class FuncUnwinders;
112 class Function;
113 class FunctionInfo;
114 class InlineFunctionInfo;
115 class Instruction;
116 class InstructionList;
117 class InstrumentationRuntime;
118 class IOHandler;
119 class IOObject;
120 class IRExecutionUnit;
121 class JITLoader;
122 class JITLoaderList;
123 class Language;
124 class LanguageCategory;
125 class LanguageRuntime;
126 class MemoryRegionInfo;
127 class LineTable;
128 class Listener;
129 class Log;
130 class Mangled;
131 class Materializer;
132 class MemoryHistory;
133 class Module;
134 class ModuleList;
135 class ModuleSpec;
136 class ModuleSpecList;
137 class Mutex;
138 struct NameSearchContext;
139 class ObjCLanguageRuntime;
140 class ObjCRuntimeSyntheticProvider;
141 class ObjectContainer;
142 class OptionGroup;
143 class OptionGroupOptions;
144 class OptionGroupPlatform;
145 class ObjectFile;
146 class ObjectFileJITDelegate;
147 class OperatingSystem;
148 class Options;
149 class OptionValue;
150 class OptionValueArch;
151 class OptionValueArgs;
152 class OptionValueArray;
153 class OptionValueBoolean;
154 class OptionValueChar;
155 class OptionValueDictionary;
156 class OptionValueEnumeration;
157 class OptionValueFileSpec;
158 class OptionValueFileSpecList;
159 class OptionValueFormat;
160 class OptionValueLanguage;
161 class OptionValueFormatEntity;
162 class OptionValuePathMappings;
163 class OptionValueProperties;
164 class OptionValueRegex;
165 class OptionValueSInt64;
166 class OptionValueString;
167 class OptionValueUInt64;
168 class OptionValueUUID;
169 class NamedOption;
170 class PathMappingList;
171 class FunctionCaller;
172 class PersistentExpressionState;
173 class Platform;
174 class Process;
175 class ProcessAttachInfo;
176 class ProcessModID;
177 class ProcessInfo;
178 class ProcessInstanceInfo;
179 class ProcessInstanceInfoList;
180 class ProcessInstanceInfoMatch;
181 class ProcessLaunchInfo;
182 class Property;
183 struct PropertyDefinition;
184 class RegisterCheckpoint;
185 class RegisterContext;
186 class RegisterLocation;
187 class RegisterLocationList;
188 class RegisterValue;
189 class RegularExpression;
190 class REPL;
191 class Scalar;
192 class ScriptInterpreter;
193 class ScriptInterpreterLocker;
194 struct ScriptSummaryFormat;
195 class SearchFilter;
196 class Section;
197 class SectionImpl;
198 class SectionList;
199 class SectionLoadHistory;
200 class SectionLoadList;
201 class Settings;
202 class SourceManager;
203 class SourceManagerImpl;
204 class StackFrame;
205 class StackFrameImpl;
206 class StackFrameList;
207 class StackID;
208 class StopInfo;
209 class Stoppoint;
210 class StoppointCallbackContext;
211 class StoppointLocation;
212 class Stream;
213 template <unsigned N> class StreamBuffer;
214 class StreamFile;
215 class StreamString;
216 class StringList;
217 struct StringSummaryFormat;
218 class StructuredDataPlugin;
219 class SystemRuntime;
220 class TypeSummaryImpl;
221 class TypeSummaryOptions;
222 class Symbol;
223 class SymbolContext;
224 class SymbolContextList;
225 class SymbolContextScope;
226 class SymbolContextSpecifier;
227 class SymbolFile;
228 class SymbolFileType;
229 class SymbolVendor;
230 class Symtab;
231 class SyntheticChildren;
232 class SyntheticChildrenFrontEnd;
233 class TypeFilterImpl;
234 class TypeSystem;
235 #ifndef LLDB_DISABLE_PYTHON
236 class ScriptedSyntheticChildren;
237 #endif
238 class Queue;
239 class QueueItem;
240 class QueueImpl;
241 class Target;
242 class TargetList;
243 class TargetProperties;
244 class Thread;
245 class ThreadCollection;
246 class ThreadList;
247 class ThreadPlan;
248 class ThreadPlanBase;
249 class ThreadPlanRunToAddress;
250 class ThreadPlanStepInstruction;
251 class ThreadPlanStepOut;
252 class ThreadPlanStepOverBreakpoint;
253 class ThreadPlanStepRange;
254 class ThreadPlanStepThrough;
255 class ThreadPlanTracer;
256 class ThreadSpec;
257 class Type;
258 class TypeAndOrName;
259 class TypeCategoryMap;
260 class TypeImpl;
261 class TypeList;
262 class TypeMap;
263 class TypeListImpl;
264 class TypeMemberImpl;
265 class TypeMemberFunctionImpl;
266 class TypeEnumMemberImpl;
267 class TypeEnumMemberListImpl;
268 class TypeFormatImpl;
269 class TypeNameSpecifierImpl;
270 class TypePair;
271 class TypeValidatorImpl;
272 class UUID;
273 class UnixSignals;
274 class Unwind;
275 class UnwindAssembly;
276 class UnwindPlan;
277 class UnwindTable;
278 class UserExpression;
279 class UtilityFunction;
280 class VMRange;
281 class Value;
282 class ValueList;
283 class ValueObject;
284 class ValueObjectChild;
285 class ValueObjectConstResult;
286 class ValueObjectConstResultChild;
287 class ValueObjectConstResultImpl;
288 class ValueObjectList;
289 class ValueObjectPrinter;
290 class Variable;
291 class VariableList;
292 class Watchpoint;
293 class WatchpointList;
294 class WatchpointOptions;
295 struct LineEntry;
296
297 } // namespace lldb_private
298
299 //----------------------------------------------------------------------
300 // lldb forward declarations
301 //----------------------------------------------------------------------
302 namespace lldb {
303
304 typedef std::shared_ptr<lldb_private::ABI> ABISP;
305 typedef std::shared_ptr<lldb_private::Baton> BatonSP;
306 typedef std::shared_ptr<lldb_private::Block> BlockSP;
307 typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
308 typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
309 typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
310 typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP;
311 typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
312 typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
313 typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
314 typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
315 typedef std::shared_ptr<lldb_private::BroadcasterManager> BroadcasterManagerSP;
316 typedef std::weak_ptr<lldb_private::BroadcasterManager> BroadcasterManagerWP;
317 typedef std::unique_ptr<lldb_private::ClangASTContext> ClangASTContextUP;
318 typedef std::shared_ptr<lldb_private::ClangASTImporter> ClangASTImporterSP;
319 typedef std::unique_ptr<lldb_private::ClangModulesDeclVendor>
320     ClangModulesDeclVendorUP;
321 typedef std::unique_ptr<lldb_private::ClangPersistentVariables>
322     ClangPersistentVariablesUP;
323 typedef std::shared_ptr<lldb_private::UserExpression> UserExpressionSP;
324 typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
325 typedef std::shared_ptr<lldb_private::Communication> CommunicationSP;
326 typedef std::shared_ptr<lldb_private::Connection> ConnectionSP;
327 typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
328 typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
329 typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
330 typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP;
331 typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP;
332 typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
333 typedef std::unique_ptr<lldb_private::DynamicCheckerFunctions>
334     DynamicCheckerFunctionsUP;
335 typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
336 typedef std::unique_ptr<lldb_private::DynamicLoader> DynamicLoaderUP;
337 typedef std::shared_ptr<lldb_private::Event> EventSP;
338 typedef std::shared_ptr<lldb_private::EventData> EventDataSP;
339 typedef std::shared_ptr<lldb_private::EventDataStructuredData>
340     EventDataStructuredDataSP;
341 typedef std::shared_ptr<lldb_private::ExecutionContextRef>
342     ExecutionContextRefSP;
343 typedef std::shared_ptr<lldb_private::ExpressionVariable> ExpressionVariableSP;
344 typedef std::shared_ptr<lldb_private::File> FileSP;
345 typedef std::shared_ptr<lldb_private::Function> FunctionSP;
346 typedef std::shared_ptr<lldb_private::FunctionCaller> FunctionCallerSP;
347 typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
348 typedef std::unique_ptr<lldb_private::GoASTContext> GoASTContextUP;
349 typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
350 typedef std::shared_ptr<lldb_private::Instruction> InstructionSP;
351 typedef std::shared_ptr<lldb_private::InstrumentationRuntime>
352     InstrumentationRuntimeSP;
353 typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP;
354 typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP;
355 typedef std::shared_ptr<lldb_private::IRExecutionUnit> IRExecutionUnitSP;
356 typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP;
357 typedef std::unique_ptr<lldb_private::JITLoaderList> JITLoaderListUP;
358 typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
359 typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP;
360 typedef std::unique_ptr<lldb_private::SystemRuntime> SystemRuntimeUP;
361 typedef std::shared_ptr<lldb_private::LineTable> LineTableSP;
362 typedef std::shared_ptr<lldb_private::Listener> ListenerSP;
363 typedef std::weak_ptr<lldb_private::Listener> ListenerWP;
364 typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP;
365 typedef std::shared_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoSP;
366 typedef std::unique_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoUP;
367 typedef std::shared_ptr<lldb_private::Module> ModuleSP;
368 typedef std::weak_ptr<lldb_private::Module> ModuleWP;
369 typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
370 typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
371 typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate>
372     ObjectFileJITDelegateSP;
373 typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate>
374     ObjectFileJITDelegateWP;
375 typedef std::unique_ptr<lldb_private::OperatingSystem> OperatingSystemUP;
376 typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP;
377 typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP;
378 typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP;
379 typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP;
380 typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP;
381 typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP;
382 typedef std::shared_ptr<lldb_private::OptionValueDictionary>
383     OptionValueDictionarySP;
384 typedef std::shared_ptr<lldb_private::OptionValueFileSpec>
385     OptionValueFileSpecSP;
386 typedef std::shared_ptr<lldb_private::OptionValueFileSpecList>
387     OptionValueFileSpecListSP;
388 typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP;
389 typedef std::shared_ptr<lldb_private::OptionValuePathMappings>
390     OptionValuePathMappingsSP;
391 typedef std::shared_ptr<lldb_private::OptionValueProperties>
392     OptionValuePropertiesSP;
393 typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP;
394 typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP;
395 typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP;
396 typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP;
397 typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP;
398 typedef std::shared_ptr<lldb_private::Platform> PlatformSP;
399 typedef std::shared_ptr<lldb_private::Process> ProcessSP;
400 typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
401 typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
402 typedef std::weak_ptr<lldb_private::Process> ProcessWP;
403 typedef std::shared_ptr<lldb_private::Property> PropertySP;
404 typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP;
405 typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
406 typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
407 typedef std::shared_ptr<lldb_private::Queue> QueueSP;
408 typedef std::weak_ptr<lldb_private::Queue> QueueWP;
409 typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP;
410 typedef std::shared_ptr<lldb_private::REPL> REPLSP;
411 typedef std::shared_ptr<lldb_private::ScriptSummaryFormat>
412     ScriptSummaryFormatSP;
413 typedef std::shared_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterSP;
414 typedef std::unique_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterUP;
415 typedef std::shared_ptr<lldb_private::Section> SectionSP;
416 typedef std::unique_ptr<lldb_private::SectionList> SectionListUP;
417 typedef std::weak_ptr<lldb_private::Section> SectionWP;
418 typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP;
419 typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
420 typedef std::shared_ptr<lldb_private::Settings> SettingsSP;
421 typedef std::unique_ptr<lldb_private::SourceManager> SourceManagerUP;
422 typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP;
423 typedef std::unique_ptr<lldb_private::StackFrame> StackFrameUP;
424 typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP;
425 typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
426 typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP;
427 typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP;
428 typedef std::shared_ptr<lldb_private::Stream> StreamSP;
429 typedef std::weak_ptr<lldb_private::Stream> StreamWP;
430 typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP;
431 typedef std::shared_ptr<lldb_private::StringSummaryFormat>
432     StringTypeSummaryImplSP;
433 typedef std::shared_ptr<lldb_private::StructuredDataPlugin>
434     StructuredDataPluginSP;
435 typedef std::weak_ptr<lldb_private::StructuredDataPlugin>
436     StructuredDataPluginWP;
437 typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
438 typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
439 typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
440 typedef std::shared_ptr<lldb_private::SymbolContextSpecifier>
441     SymbolContextSpecifierSP;
442 typedef std::unique_ptr<lldb_private::SymbolVendor> SymbolVendorUP;
443 typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
444 typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd>
445     SyntheticChildrenFrontEndSP;
446 typedef std::shared_ptr<lldb_private::Target> TargetSP;
447 typedef std::weak_ptr<lldb_private::Target> TargetWP;
448 typedef std::shared_ptr<lldb_private::TargetProperties> TargetPropertiesSP;
449 typedef std::shared_ptr<lldb_private::Thread> ThreadSP;
450 typedef std::weak_ptr<lldb_private::Thread> ThreadWP;
451 typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP;
452 typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
453 typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
454 typedef std::shared_ptr<lldb_private::Type> TypeSP;
455 typedef std::weak_ptr<lldb_private::Type> TypeWP;
456 typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
457 typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
458 typedef std::shared_ptr<lldb_private::TypeMemberFunctionImpl>
459     TypeMemberFunctionImplSP;
460 typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP;
461 typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
462 typedef std::shared_ptr<lldb_private::TypeSystem> TypeSystemSP;
463 typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
464 typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl>
465     TypeNameSpecifierImplSP;
466 typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
467 typedef std::shared_ptr<lldb_private::TypeSummaryOptions> TypeSummaryOptionsSP;
468 typedef std::shared_ptr<lldb_private::TypeValidatorImpl> TypeValidatorImplSP;
469 #ifndef LLDB_DISABLE_PYTHON
470 typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren>
471     ScriptedSyntheticChildrenSP;
472 #endif
473 typedef std::shared_ptr<lldb_private::UnixSignals> UnixSignalsSP;
474 typedef std::weak_ptr<lldb_private::UnixSignals> UnixSignalsWP;
475 typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP;
476 typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
477 typedef std::shared_ptr<lldb_private::UtilityFunction> UtilityFunctionSP;
478 typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP;
479 typedef std::shared_ptr<lldb_private::Value> ValueSP;
480 typedef std::shared_ptr<lldb_private::ValueList> ValueListSP;
481 typedef std::shared_ptr<lldb_private::Variable> VariableSP;
482 typedef std::shared_ptr<lldb_private::VariableList> VariableListSP;
483 typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
484 typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
485
486 } // namespace lldb
487
488 #endif // #if defined(__cplusplus)
489 #endif // LLDB_lldb_forward_h_