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