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