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