xref: /freebsd/contrib/llvm-project/lldb/include/lldb/lldb-forward.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
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 ProcessLaunchInfo;
168  class ProcessInfo;
169  class ProcessInstanceInfo;
170  class ProcessInstanceInfoMatch;
171  class ProcessLaunchInfo;
172  class ProcessModID;
173  class Property;
174  class Queue;
175  class QueueImpl;
176  class QueueItem;
177  class REPL;
178  class RecognizedStackFrame;
179  class RegisterCheckpoint;
180  class RegisterContext;
181  class RegisterTypeBuilder;
182  class RegisterValue;
183  class RegularExpression;
184  class RichManglingContext;
185  class SaveCoreOptions;
186  class Scalar;
187  class ScriptInterpreter;
188  class ScriptInterpreterLocker;
189  class ScriptedMetadata;
190  class ScriptedPlatformInterface;
191  class ScriptedProcessInterface;
192  class ScriptedThreadInterface;
193  class ScriptedThreadPlanInterface;
194  class ScriptedSyntheticChildren;
195  class SearchFilter;
196  class Section;
197  class SectionList;
198  class SectionLoadHistory;
199  class SectionLoadList;
200  class Settings;
201  class SourceManager;
202  class SourceManagerImpl;
203  class StackFrame;
204  class StackFrameList;
205  class StackFrameRecognizer;
206  class StackFrameRecognizerManager;
207  class StackID;
208  class Status;
209  class StopInfo;
210  class Stoppoint;
211  class StoppointCallbackContext;
212  class Stream;
213  class StreamFile;
214  class StreamString;
215  class StringList;
216  class StringTableReader;
217  class StructuredDataImpl;
218  class StructuredDataPlugin;
219  class SupportFile;
220  class Symbol;
221  class SymbolContext;
222  class SymbolContextList;
223  class SymbolContextScope;
224  class SymbolContextSpecifier;
225  class SymbolFile;
226  class SymbolFileType;
227  class SymbolLocator;
228  class SymbolVendor;
229  class Symtab;
230  class SyntheticChildren;
231  class SyntheticChildrenFrontEnd;
232  class SystemRuntime;
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 ThreadPostMortemTrace;
250  class ThreadedCommunication;
251  class Trace;
252  class TraceCursor;
253  class TraceExporter;
254  class Type;
255  class TypeAndOrName;
256  class TypeCategoryImpl;
257  class TypeCategoryMap;
258  class TypeEnumMemberImpl;
259  class TypeEnumMemberListImpl;
260  class TypeFilterImpl;
261  class TypeFormatImpl;
262  class TypeImpl;
263  class TypeList;
264  class TypeListImpl;
265  class TypeMap;
266  class TypeQuery;
267  class TypeMemberFunctionImpl;
268  class TypeMemberImpl;
269  class TypeNameSpecifierImpl;
270  class TypeResults;
271  class TypeSummaryImpl;
272  class TypeSummaryOptions;
273  class TypeSystem;
274  class TypeSystemClang;
275  class UUID;
276  class UnixSignals;
277  class Unwind;
278  class UnwindAssembly;
279  class UnwindPlan;
280  class UnwindTable;
281  class UserExpression;
282  class UtilityFunction;
283  class VMRange;
284  class Value;
285  class ValueList;
286  class ValueObject;
287  class ValueObjectChild;
288  class ValueObjectConstResult;
289  class ValueObjectConstResultChild;
290  class ValueObjectConstResultImpl;
291  class ValueObjectList;
292  class ValueObjectPrinter;
293  class Variable;
294  class VariableList;
295  class Watchpoint;
296  class WatchpointList;
297  class WatchpointOptions;
298  class WatchpointResource;
299  class WatchpointResourceCollection;
300  class WatchpointSetOptions;
301  struct CompilerContext;
302  struct LineEntry;
303  struct PropertyDefinition;
304  struct ScriptSummaryFormat;
305  struct StatisticsOptions;
306  struct StringSummaryFormat;
307  template <unsigned N> class StreamBuffer;
308  
309  } // namespace lldb_private
310  
311  // lldb forward declarations
312  namespace lldb {
313  
314  typedef std::shared_ptr<lldb_private::ABI> ABISP;
315  typedef std::unique_ptr<lldb_private::AddressRange> AddressRangeUP;
316  typedef std::shared_ptr<lldb_private::Baton> BatonSP;
317  typedef std::shared_ptr<lldb_private::Block> BlockSP;
318  typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
319  typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
320  typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
321  typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
322  typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
323  typedef std::shared_ptr<lldb_private::BreakpointPrecondition>
324      BreakpointPreconditionSP;
325  typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
326  typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
327  typedef std::shared_ptr<lldb_private::BroadcasterManager> BroadcasterManagerSP;
328  typedef std::weak_ptr<lldb_private::BroadcasterManager> BroadcasterManagerWP;
329  typedef std::shared_ptr<lldb_private::UserExpression> UserExpressionSP;
330  typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
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::WritableDataBuffer> WritableDataBufferSP;
335  typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
336  typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP;
337  typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP;
338  typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
339  typedef std::unique_ptr<lldb_private::DynamicCheckerFunctions>
340      DynamicCheckerFunctionsUP;
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::unique_ptr<lldb_private::File> FileUP;
350  typedef std::shared_ptr<lldb_private::File> FileSP;
351  typedef std::shared_ptr<lldb_private::FormatEntity::Entry> FormatEntrySP;
352  typedef std::shared_ptr<lldb_private::Function> FunctionSP;
353  typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
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::unique_ptr<lldb_private::SystemRuntime> SystemRuntimeUP;
365  typedef std::shared_ptr<lldb_private::Listener> ListenerSP;
366  typedef std::weak_ptr<lldb_private::Listener> ListenerWP;
367  typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP;
368  typedef std::unique_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoUP;
369  typedef std::shared_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoSP;
370  typedef std::shared_ptr<lldb_private::Module> ModuleSP;
371  typedef std::weak_ptr<lldb_private::Module> ModuleWP;
372  typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
373  typedef std::shared_ptr<lldb_private::ObjectContainer> ObjectContainerSP;
374  typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate>
375      ObjectFileJITDelegateSP;
376  typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate>
377      ObjectFileJITDelegateWP;
378  typedef std::unique_ptr<lldb_private::OperatingSystem> OperatingSystemUP;
379  typedef std::shared_ptr<lldb_private::OperatingSystemInterface>
380      OperatingSystemInterfaceSP;
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::OptionValueProperties>
384      OptionValuePropertiesSP;
385  typedef std::shared_ptr<lldb_private::Platform> PlatformSP;
386  typedef std::shared_ptr<lldb_private::Process> ProcessSP;
387  typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
388  typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
389  typedef std::weak_ptr<lldb_private::Process> ProcessWP;
390  typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP;
391  typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
392  typedef std::shared_ptr<lldb_private::RegisterTypeBuilder>
393      RegisterTypeBuilderSP;
394  typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
395  typedef std::shared_ptr<lldb_private::Queue> QueueSP;
396  typedef std::weak_ptr<lldb_private::Queue> QueueWP;
397  typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP;
398  typedef std::shared_ptr<lldb_private::REPL> REPLSP;
399  typedef std::shared_ptr<lldb_private::RecognizedStackFrame>
400      RecognizedStackFrameSP;
401  typedef std::shared_ptr<lldb_private::ScriptSummaryFormat>
402      ScriptSummaryFormatSP;
403  typedef std::shared_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterSP;
404  typedef std::shared_ptr<lldb_private::ScriptedMetadata> ScriptedMetadataSP;
405  typedef std::unique_ptr<lldb_private::ScriptedPlatformInterface>
406      ScriptedPlatformInterfaceUP;
407  typedef std::unique_ptr<lldb_private::ScriptedProcessInterface>
408      ScriptedProcessInterfaceUP;
409  typedef std::shared_ptr<lldb_private::ScriptedThreadInterface>
410      ScriptedThreadInterfaceSP;
411  typedef std::shared_ptr<lldb_private::ScriptedThreadPlanInterface>
412      ScriptedThreadPlanInterfaceSP;
413  typedef std::shared_ptr<lldb_private::Section> SectionSP;
414  typedef std::unique_ptr<lldb_private::SectionList> SectionListUP;
415  typedef std::weak_ptr<lldb_private::Section> SectionWP;
416  typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP;
417  typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
418  typedef std::unique_ptr<lldb_private::SourceManager> SourceManagerUP;
419  typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP;
420  typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP;
421  typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
422  typedef std::shared_ptr<lldb_private::StackFrameRecognizer>
423      StackFrameRecognizerSP;
424  typedef std::unique_ptr<lldb_private::StackFrameRecognizerManager>
425      StackFrameRecognizerManagerUP;
426  typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP;
427  typedef std::shared_ptr<lldb_private::Stream> StreamSP;
428  typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP;
429  typedef std::shared_ptr<lldb_private::StringSummaryFormat>
430      StringTypeSummaryImplSP;
431  typedef std::unique_ptr<lldb_private::StructuredDataImpl> StructuredDataImplUP;
432  typedef std::shared_ptr<lldb_private::StructuredDataPlugin>
433      StructuredDataPluginSP;
434  typedef std::weak_ptr<lldb_private::StructuredDataPlugin>
435      StructuredDataPluginWP;
436  typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
437  typedef std::shared_ptr<lldb_private::SymbolContextSpecifier>
438      SymbolContextSpecifierSP;
439  typedef std::unique_ptr<lldb_private::SymbolVendor> SymbolVendorUP;
440  typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
441  typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd>
442      SyntheticChildrenFrontEndSP;
443  typedef std::shared_ptr<lldb_private::Target> TargetSP;
444  typedef std::weak_ptr<lldb_private::Target> TargetWP;
445  typedef std::shared_ptr<lldb_private::Thread> ThreadSP;
446  typedef std::weak_ptr<lldb_private::Thread> ThreadWP;
447  typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP;
448  typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
449  typedef std::shared_ptr<lldb_private::ThreadPostMortemTrace>
450      ThreadPostMortemTraceSP;
451  typedef std::weak_ptr<lldb_private::ThreadPlan> ThreadPlanWP;
452  typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
453  typedef std::shared_ptr<lldb_private::Trace> TraceSP;
454  typedef std::unique_ptr<lldb_private::TraceExporter> TraceExporterUP;
455  typedef std::shared_ptr<lldb_private::TraceCursor> TraceCursorSP;
456  typedef std::shared_ptr<lldb_private::Type> TypeSP;
457  typedef std::weak_ptr<lldb_private::Type> TypeWP;
458  typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
459  typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
460  typedef std::shared_ptr<lldb_private::TypeMemberFunctionImpl>
461      TypeMemberFunctionImplSP;
462  typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP;
463  typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
464  typedef std::shared_ptr<lldb_private::TypeSystem> TypeSystemSP;
465  typedef std::shared_ptr<lldb_private::TypeSystemClang> TypeSystemClangSP;
466  typedef std::weak_ptr<lldb_private::TypeSystem> TypeSystemWP;
467  typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
468  typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl>
469      TypeNameSpecifierImplSP;
470  typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
471  typedef std::shared_ptr<lldb_private::TypeSummaryOptions> TypeSummaryOptionsSP;
472  typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren>
473      ScriptedSyntheticChildrenSP;
474  typedef std::shared_ptr<lldb_private::SupportFile> SupportFileSP;
475  typedef std::shared_ptr<lldb_private::UnixSignals> UnixSignalsSP;
476  typedef std::weak_ptr<lldb_private::UnixSignals> UnixSignalsWP;
477  typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP;
478  typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
479  typedef std::shared_ptr<lldb_private::ValueObject> ValueObjectSP;
480  typedef std::shared_ptr<lldb_private::Value> ValueSP;
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  typedef std::shared_ptr<lldb_private::WatchpointResource> WatchpointResourceSP;
486  
487  } // namespace lldb
488  
489  #endif // LLDB_LLDB_FORWARD_H
490