1 //===-- lldb-forward.h ------------------------------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_LLDB_FORWARD_H
10 #define LLDB_LLDB_FORWARD_H
12 #if defined(__cplusplus)
16 // lldb forward declarations
17 namespace lldb_private {
20 class ASTResultSynthesizer;
21 class ASTStructExtractor;
24 class AddressResolver;
33 class BreakpointIDList;
35 class BreakpointLocation;
36 class BreakpointLocationCollection;
37 class BreakpointLocationList;
39 class BreakpointOptionGroup;
40 class BreakpointOptions;
41 class BreakpointPrecondition;
42 class BreakpointResolver;
44 class BreakpointSiteList;
45 class BroadcastEventSpec;
47 class BroadcasterManager;
48 class CXXSyntheticChildren;
50 class CommandInterpreter;
51 class CommandInterpreterRunOptions;
53 class CommandObjectMultiword;
54 class CommandReturnObject;
56 class CompactUnwindInfo;
59 class CompilerDeclContext;
62 class ConnectionFileDescriptor;
64 class DWARFCallFrameInfo;
65 class DWARFDataExtractor;
66 class DWARFExpression;
72 class DiagnosticManager;
74 class DumpValueObjectOptions;
75 class DynamicCheckerFunctions;
78 class EmulateInstruction;
80 class EvaluateExpressionOptions;
83 class EventDataStructuredData;
84 class ExecutionContext;
85 class ExecutionContextRef;
86 class ExecutionContextScope;
88 class ExpressionTypeSystemHelper;
89 class ExpressionVariable;
90 class ExpressionVariableList;
96 class FormattersMatchCandidate;
103 class IRExecutionUnit;
104 class InlineFunctionInfo;
106 class InstructionList;
107 class InstrumentationRuntime;
111 class LanguageCategory;
112 class LanguageRuntime;
119 class MemoryRegionInfo;
120 class MemoryRegionInfos;
124 class ModuleSpecList;
125 class ObjectContainer;
127 class ObjectFileJITDelegate;
128 class OperatingSystem;
130 class OptionGroupOptions;
131 class OptionGroupPlatform;
133 class OptionValueArch;
134 class OptionValueArgs;
135 class OptionValueArray;
136 class OptionValueBoolean;
137 class OptionValueChar;
138 class OptionValueDictionary;
139 class OptionValueEnumeration;
140 class OptionValueFileSpec;
141 class OptionValueFileSpecList;
142 class OptionValueFormat;
143 class OptionValueFormatEntity;
144 class OptionValueLanguage;
145 class OptionValuePathMappings;
146 class OptionValueProperties;
147 class OptionValueRegex;
148 class OptionValueSInt64;
149 class OptionValueString;
150 class OptionValueUInt64;
151 class OptionValueUUID;
153 class PathMappingList;
154 class PersistentExpressionState;
157 class ProcessAttachInfo;
159 class ProcessInstanceInfo;
160 class ProcessInstanceInfoMatch;
161 class ProcessLaunchInfo;
168 class RecognizedStackFrame;
169 class RegisterCheckpoint;
170 class RegisterContext;
172 class RegularExpression;
173 class RichManglingContext;
175 class ScriptInterpreter;
176 class ScriptInterpreterLocker;
177 class ScriptedSyntheticChildren;
181 class SectionLoadHistory;
182 class SectionLoadList;
185 class SourceManagerImpl;
187 class StackFrameList;
188 class StackFrameRecognizer;
189 class StackFrameRecognizerManager;
194 class StoppointCallbackContext;
199 class StructuredDataImpl;
200 class StructuredDataPlugin;
203 class SymbolContextList;
204 class SymbolContextScope;
205 class SymbolContextSpecifier;
207 class SymbolFileType;
210 class SyntheticChildren;
211 class SyntheticChildrenFrontEnd;
215 class TargetProperties;
217 class ThreadCollection;
220 class ThreadPlanBase;
221 class ThreadPlanRunToAddress;
222 class ThreadPlanStepInstruction;
223 class ThreadPlanStepOut;
224 class ThreadPlanStepOverBreakpoint;
225 class ThreadPlanStepRange;
226 class ThreadPlanStepThrough;
227 class ThreadPlanTracer;
231 class TraceSessionFileParser;
235 class TypeCategoryImpl;
236 class TypeCategoryMap;
237 class TypeEnumMemberImpl;
238 class TypeEnumMemberListImpl;
239 class TypeFilterImpl;
240 class TypeFormatImpl;
245 class TypeMemberFunctionImpl;
246 class TypeMemberImpl;
247 class TypeNameSpecifierImpl;
248 class TypeSummaryImpl;
249 class TypeSummaryOptions;
254 class UnwindAssembly;
257 class UserExpression;
258 class UtilityFunction;
263 class ValueObjectChild;
264 class ValueObjectConstResult;
265 class ValueObjectConstResultChild;
266 class ValueObjectConstResultImpl;
267 class ValueObjectList;
268 class ValueObjectPrinter;
272 class WatchpointList;
273 class WatchpointOptions;
274 struct CompilerContext;
276 struct PropertyDefinition;
277 struct ScriptSummaryFormat;
278 struct StringSummaryFormat;
279 template <unsigned N> class StreamBuffer;
281 } // namespace lldb_private
283 // lldb forward declarations
286 typedef std::shared_ptr<lldb_private::ABI> ABISP;
287 typedef std::shared_ptr<lldb_private::Baton> BatonSP;
288 typedef std::shared_ptr<lldb_private::Block> BlockSP;
289 typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
290 typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
291 typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
292 typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP;
293 typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
294 typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
295 typedef std::shared_ptr<lldb_private::BreakpointPrecondition>
296 BreakpointPreconditionSP;
297 typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
298 typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
299 typedef std::shared_ptr<lldb_private::BroadcasterManager> BroadcasterManagerSP;
300 typedef std::weak_ptr<lldb_private::BroadcasterManager> BroadcasterManagerWP;
301 typedef std::shared_ptr<lldb_private::UserExpression> UserExpressionSP;
302 typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
303 typedef std::shared_ptr<lldb_private::Communication> CommunicationSP;
304 typedef std::shared_ptr<lldb_private::Connection> ConnectionSP;
305 typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
306 typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
307 typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
308 typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP;
309 typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP;
310 typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
311 typedef std::unique_ptr<lldb_private::DynamicCheckerFunctions>
312 DynamicCheckerFunctionsUP;
313 typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
314 typedef std::unique_ptr<lldb_private::DynamicLoader> DynamicLoaderUP;
315 typedef std::shared_ptr<lldb_private::Event> EventSP;
316 typedef std::shared_ptr<lldb_private::EventData> EventDataSP;
317 typedef std::shared_ptr<lldb_private::EventDataStructuredData>
318 EventDataStructuredDataSP;
319 typedef std::shared_ptr<lldb_private::ExecutionContextRef>
320 ExecutionContextRefSP;
321 typedef std::shared_ptr<lldb_private::ExpressionVariable> ExpressionVariableSP;
322 typedef std::unique_ptr<lldb_private::File> FileUP;
323 typedef std::shared_ptr<lldb_private::File> FileSP;
324 typedef std::shared_ptr<lldb_private::Function> FunctionSP;
325 typedef std::shared_ptr<lldb_private::FunctionCaller> FunctionCallerSP;
326 typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
327 typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
328 typedef std::shared_ptr<lldb_private::Instruction> InstructionSP;
329 typedef std::shared_ptr<lldb_private::InstrumentationRuntime>
330 InstrumentationRuntimeSP;
331 typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP;
332 typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP;
333 typedef std::shared_ptr<lldb_private::IRExecutionUnit> IRExecutionUnitSP;
334 typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP;
335 typedef std::unique_ptr<lldb_private::JITLoaderList> JITLoaderListUP;
336 typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
337 typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP;
338 typedef std::unique_ptr<lldb_private::SystemRuntime> SystemRuntimeUP;
339 typedef std::shared_ptr<lldb_private::LineTable> LineTableSP;
340 typedef std::shared_ptr<lldb_private::Listener> ListenerSP;
341 typedef std::weak_ptr<lldb_private::Listener> ListenerWP;
342 typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP;
343 typedef std::unique_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoUP;
344 typedef std::shared_ptr<lldb_private::Module> ModuleSP;
345 typedef std::weak_ptr<lldb_private::Module> ModuleWP;
346 typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
347 typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
348 typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate>
349 ObjectFileJITDelegateSP;
350 typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate>
351 ObjectFileJITDelegateWP;
352 typedef std::unique_ptr<lldb_private::OperatingSystem> OperatingSystemUP;
353 typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP;
354 typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP;
355 typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP;
356 typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP;
357 typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP;
358 typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP;
359 typedef std::shared_ptr<lldb_private::OptionValueDictionary>
360 OptionValueDictionarySP;
361 typedef std::shared_ptr<lldb_private::OptionValueFileSpec>
362 OptionValueFileSpecSP;
363 typedef std::shared_ptr<lldb_private::OptionValueFileSpecList>
364 OptionValueFileSpecListSP;
365 typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP;
366 typedef std::shared_ptr<lldb_private::OptionValuePathMappings>
367 OptionValuePathMappingsSP;
368 typedef std::shared_ptr<lldb_private::OptionValueProperties>
369 OptionValuePropertiesSP;
370 typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP;
371 typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP;
372 typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP;
373 typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP;
374 typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP;
375 typedef std::shared_ptr<lldb_private::Platform> PlatformSP;
376 typedef std::shared_ptr<lldb_private::Process> ProcessSP;
377 typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
378 typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
379 typedef std::weak_ptr<lldb_private::Process> ProcessWP;
380 typedef std::shared_ptr<lldb_private::Property> PropertySP;
381 typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP;
382 typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
383 typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
384 typedef std::shared_ptr<lldb_private::Queue> QueueSP;
385 typedef std::weak_ptr<lldb_private::Queue> QueueWP;
386 typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP;
387 typedef std::shared_ptr<lldb_private::REPL> REPLSP;
388 typedef std::shared_ptr<lldb_private::RecognizedStackFrame>
389 RecognizedStackFrameSP;
390 typedef std::shared_ptr<lldb_private::ScriptSummaryFormat>
391 ScriptSummaryFormatSP;
392 typedef std::shared_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterSP;
393 typedef std::unique_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterUP;
394 typedef std::shared_ptr<lldb_private::Section> SectionSP;
395 typedef std::unique_ptr<lldb_private::SectionList> SectionListUP;
396 typedef std::weak_ptr<lldb_private::Section> SectionWP;
397 typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP;
398 typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
399 typedef std::shared_ptr<lldb_private::Settings> SettingsSP;
400 typedef std::unique_ptr<lldb_private::SourceManager> SourceManagerUP;
401 typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP;
402 typedef std::unique_ptr<lldb_private::StackFrame> StackFrameUP;
403 typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP;
404 typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
405 typedef std::shared_ptr<lldb_private::StackFrameRecognizer>
406 StackFrameRecognizerSP;
407 typedef std::unique_ptr<lldb_private::StackFrameRecognizerManager>
408 StackFrameRecognizerManagerUP;
409 typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP;
410 typedef std::shared_ptr<lldb_private::Stream> StreamSP;
411 typedef std::weak_ptr<lldb_private::Stream> StreamWP;
412 typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP;
413 typedef std::shared_ptr<lldb_private::StringSummaryFormat>
414 StringTypeSummaryImplSP;
415 typedef std::unique_ptr<lldb_private::StructuredDataImpl> StructuredDataImplUP;
416 typedef std::shared_ptr<lldb_private::StructuredDataPlugin>
417 StructuredDataPluginSP;
418 typedef std::weak_ptr<lldb_private::StructuredDataPlugin>
419 StructuredDataPluginWP;
420 typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
421 typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
422 typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
423 typedef std::shared_ptr<lldb_private::SymbolContextSpecifier>
424 SymbolContextSpecifierSP;
425 typedef std::unique_ptr<lldb_private::SymbolVendor> SymbolVendorUP;
426 typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
427 typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd>
428 SyntheticChildrenFrontEndSP;
429 typedef std::shared_ptr<lldb_private::Target> TargetSP;
430 typedef std::weak_ptr<lldb_private::Target> TargetWP;
431 typedef std::shared_ptr<lldb_private::TargetProperties> TargetPropertiesSP;
432 typedef std::shared_ptr<lldb_private::Thread> ThreadSP;
433 typedef std::weak_ptr<lldb_private::Thread> ThreadWP;
434 typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP;
435 typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
436 typedef std::weak_ptr<lldb_private::ThreadPlan> ThreadPlanWP;
437 typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
438 typedef std::shared_ptr<lldb_private::Trace> TraceSP;
439 typedef std::shared_ptr<lldb_private::TraceOptions> TraceOptionsSP;
440 typedef std::shared_ptr<lldb_private::Type> TypeSP;
441 typedef std::weak_ptr<lldb_private::Type> TypeWP;
442 typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
443 typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
444 typedef std::shared_ptr<lldb_private::TypeMemberFunctionImpl>
445 TypeMemberFunctionImplSP;
446 typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP;
447 typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
448 typedef std::shared_ptr<lldb_private::TypeSystem> TypeSystemSP;
449 typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
450 typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl>
451 TypeNameSpecifierImplSP;
452 typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
453 typedef std::shared_ptr<lldb_private::TypeSummaryOptions> TypeSummaryOptionsSP;
454 typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren>
455 ScriptedSyntheticChildrenSP;
456 typedef std::shared_ptr<lldb_private::UnixSignals> UnixSignalsSP;
457 typedef std::weak_ptr<lldb_private::UnixSignals> UnixSignalsWP;
458 typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP;
459 typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
460 typedef std::shared_ptr<lldb_private::UtilityFunction> UtilityFunctionSP;
461 typedef std::shared_ptr<lldb_private::ValueObject> ValueObjectSP;
462 typedef std::shared_ptr<lldb_private::Value> ValueSP;
463 typedef std::shared_ptr<lldb_private::ValueList> ValueListSP;
464 typedef std::shared_ptr<lldb_private::Variable> VariableSP;
465 typedef std::shared_ptr<lldb_private::VariableList> VariableListSP;
466 typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
467 typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
471 #endif // #if defined(__cplusplus)
472 #endif // LLDB_LLDB_FORWARD_H