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