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

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