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