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