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

source code of lldb/include/lldb/lldb-forward.h