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 "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 CallFrameInfo; 48class ClangASTContext; 49class ClangASTImporter; 50class ClangASTMetadata; 51class ClangASTSource; 52class ClangExpressionDeclMap; 53class ClangExpressionParser; 54class ClangExpressionVariable; 55class ClangModulesDeclVendor; 56class ClangPersistentVariables; 57class CommandInterpreter; 58class CommandInterpreterRunOptions; 59class CommandObject; 60class CommandObjectMultiword; 61class CommandReturnObject; 62class Communication; 63class CompactUnwindInfo; 64struct CompilerContext; 65class CompilerDecl; 66class CompilerDeclContext; 67class CompilerType; 68class CompileUnit; 69class Connection; 70class ConnectionFileDescriptor; 71class ConstString; 72class CXXSyntheticChildren; 73class DWARFCallFrameInfo; 74class DWARFDataExtractor; 75class DWARFExpression; 76class DataBuffer; 77class DataEncoder; 78class DataExtractor; 79class Debugger; 80class Declaration; 81class DiagnosticManager; 82class Disassembler; 83class DumpValueObjectOptions; 84class DynamicCheckerFunctions; 85class DynamicLoader; 86class Editline; 87class EmulateInstruction; 88class Status; 89class EvaluateExpressionOptions; 90class Event; 91class EventData; 92class EventDataStructuredData; 93class ExecutionContext; 94class ExecutionContextRef; 95class ExecutionContextScope; 96class Expression; 97class ExpressionVariable; 98class ExpressionVariableList; 99class ExpressionTypeSystemHelper; 100class File; 101class FileSpec; 102class FileSpecList; 103class Flags; 104class TypeCategoryImpl; 105class FormatManager; 106class FormattersMatchCandidate; 107class FuncUnwinders; 108class Function; 109class FunctionInfo; 110class InlineFunctionInfo; 111class Instruction; 112class InstructionList; 113class InstrumentationRuntime; 114class IOHandler; 115class IOObject; 116class IRExecutionUnit; 117class JITLoader; 118class JITLoaderList; 119class Language; 120class LanguageCategory; 121class LanguageRuntime; 122class LineTable; 123class Listener; 124class Log; 125class Mangled; 126class Materializer; 127class MemoryHistory; 128class MemoryRegionInfo; 129class MemoryRegionInfos; 130class Module; 131class ModuleList; 132class ModuleSpec; 133class ModuleSpecList; 134struct NameSearchContext; 135class ObjectContainer; 136class OptionGroup; 137class OptionGroupOptions; 138class OptionGroupPlatform; 139class ObjectFile; 140class ObjectFileJITDelegate; 141class OperatingSystem; 142class Options; 143class OptionValue; 144class OptionValueArch; 145class OptionValueArgs; 146class OptionValueArray; 147class OptionValueBoolean; 148class OptionValueChar; 149class OptionValueDictionary; 150class OptionValueEnumeration; 151class OptionValueFileSpec; 152class OptionValueFileSpecList; 153class OptionValueFormat; 154class OptionValueLanguage; 155class OptionValueFormatEntity; 156class OptionValuePathMappings; 157class OptionValueProperties; 158class OptionValueRegex; 159class OptionValueSInt64; 160class OptionValueString; 161class OptionValueUInt64; 162class OptionValueUUID; 163class PathMappingList; 164class FunctionCaller; 165class PersistentExpressionState; 166class Platform; 167class Process; 168class ProcessAttachInfo; 169class ProcessModID; 170class ProcessInfo; 171class ProcessInstanceInfo; 172class ProcessInstanceInfoList; 173class ProcessInstanceInfoMatch; 174class ProcessLaunchInfo; 175class Property; 176struct PropertyDefinition; 177class RecognizedStackFrame; 178class RegisterCheckpoint; 179class RegisterContext; 180class RegisterValue; 181class RegularExpression; 182class REPL; 183class RichManglingContext; 184class Scalar; 185class ScriptInterpreter; 186class ScriptInterpreterLocker; 187struct ScriptSummaryFormat; 188class SearchFilter; 189class Section; 190class SectionList; 191class SectionLoadHistory; 192class SectionLoadList; 193class Settings; 194class SourceManager; 195class SourceManagerImpl; 196class StackFrame; 197class StackFrameList; 198class StackFrameRecognizer; 199class StackFrameRecognizerManager; 200class StackID; 201class StopInfo; 202class Stoppoint; 203class StoppointCallbackContext; 204class StoppointLocation; 205class Stream; 206template <unsigned N> class StreamBuffer; 207class StreamFile; 208class StreamString; 209class StringList; 210struct StringSummaryFormat; 211class StructuredDataImpl; 212class StructuredDataPlugin; 213class SystemRuntime; 214class TypeSummaryImpl; 215class TypeSummaryOptions; 216class Symbol; 217class SymbolContext; 218class SymbolContextList; 219class SymbolContextScope; 220class SymbolContextSpecifier; 221class SymbolFile; 222class SymbolFileType; 223class SymbolVendor; 224class Symtab; 225class SyntheticChildren; 226class SyntheticChildrenFrontEnd; 227class TypeFilterImpl; 228class TypeSystem; 229class ScriptedSyntheticChildren; 230class Queue; 231class QueueItem; 232class QueueImpl; 233class Target; 234class TargetList; 235class TargetProperties; 236class Thread; 237class ThreadCollection; 238class ThreadList; 239class ThreadPlan; 240class ThreadPlanBase; 241class ThreadPlanRunToAddress; 242class ThreadPlanStepInstruction; 243class ThreadPlanStepOut; 244class ThreadPlanStepOverBreakpoint; 245class ThreadPlanStepRange; 246class ThreadPlanStepThrough; 247class ThreadPlanTracer; 248class ThreadSpec; 249class TraceOptions; 250class Type; 251class TypeAndOrName; 252class TypeCategoryMap; 253class TypeImpl; 254class TypeList; 255class TypeMap; 256class TypeListImpl; 257class TypeMemberImpl; 258class TypeMemberFunctionImpl; 259class TypeEnumMemberImpl; 260class TypeEnumMemberListImpl; 261class TypeFormatImpl; 262class TypeNameSpecifierImpl; 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::unique_ptr<lldb_private::File> FileUP; 335typedef std::shared_ptr<lldb_private::File> FileSP; 336typedef std::shared_ptr<lldb_private::Function> FunctionSP; 337typedef std::shared_ptr<lldb_private::FunctionCaller> FunctionCallerSP; 338typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP; 339typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP; 340typedef std::shared_ptr<lldb_private::Instruction> InstructionSP; 341typedef std::shared_ptr<lldb_private::InstrumentationRuntime> 342 InstrumentationRuntimeSP; 343typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP; 344typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP; 345typedef std::shared_ptr<lldb_private::IRExecutionUnit> IRExecutionUnitSP; 346typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP; 347typedef std::unique_ptr<lldb_private::JITLoaderList> JITLoaderListUP; 348typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP; 349typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP; 350typedef std::unique_ptr<lldb_private::SystemRuntime> SystemRuntimeUP; 351typedef std::shared_ptr<lldb_private::LineTable> LineTableSP; 352typedef std::shared_ptr<lldb_private::Listener> ListenerSP; 353typedef std::weak_ptr<lldb_private::Listener> ListenerWP; 354typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP; 355typedef std::unique_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoUP; 356typedef std::shared_ptr<lldb_private::Module> ModuleSP; 357typedef std::weak_ptr<lldb_private::Module> ModuleWP; 358typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP; 359typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP; 360typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate> 361 ObjectFileJITDelegateSP; 362typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate> 363 ObjectFileJITDelegateWP; 364typedef std::unique_ptr<lldb_private::OperatingSystem> OperatingSystemUP; 365typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP; 366typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP; 367typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP; 368typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP; 369typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP; 370typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP; 371typedef std::shared_ptr<lldb_private::OptionValueDictionary> 372 OptionValueDictionarySP; 373typedef std::shared_ptr<lldb_private::OptionValueFileSpec> 374 OptionValueFileSpecSP; 375typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> 376 OptionValueFileSpecListSP; 377typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP; 378typedef std::shared_ptr<lldb_private::OptionValuePathMappings> 379 OptionValuePathMappingsSP; 380typedef std::shared_ptr<lldb_private::OptionValueProperties> 381 OptionValuePropertiesSP; 382typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP; 383typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP; 384typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP; 385typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP; 386typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP; 387typedef std::shared_ptr<lldb_private::Platform> PlatformSP; 388typedef std::shared_ptr<lldb_private::Process> ProcessSP; 389typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP; 390typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP; 391typedef std::weak_ptr<lldb_private::Process> ProcessWP; 392typedef std::shared_ptr<lldb_private::Property> PropertySP; 393typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP; 394typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP; 395typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP; 396typedef std::shared_ptr<lldb_private::Queue> QueueSP; 397typedef std::weak_ptr<lldb_private::Queue> QueueWP; 398typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP; 399typedef std::shared_ptr<lldb_private::REPL> REPLSP; 400typedef std::shared_ptr<lldb_private::RecognizedStackFrame> 401 RecognizedStackFrameSP; 402typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> 403 ScriptSummaryFormatSP; 404typedef std::shared_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterSP; 405typedef std::unique_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterUP; 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::shared_ptr<lldb_private::Settings> SettingsSP; 412typedef std::unique_ptr<lldb_private::SourceManager> SourceManagerUP; 413typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP; 414typedef std::unique_ptr<lldb_private::StackFrame> StackFrameUP; 415typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP; 416typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP; 417typedef std::shared_ptr<lldb_private::StackFrameRecognizer> 418 StackFrameRecognizerSP; 419typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP; 420typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP; 421typedef std::shared_ptr<lldb_private::Stream> StreamSP; 422typedef std::weak_ptr<lldb_private::Stream> StreamWP; 423typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP; 424typedef std::shared_ptr<lldb_private::StringSummaryFormat> 425 StringTypeSummaryImplSP; 426typedef std::unique_ptr<lldb_private::StructuredDataImpl> StructuredDataImplUP; 427typedef std::shared_ptr<lldb_private::StructuredDataPlugin> 428 StructuredDataPluginSP; 429typedef std::weak_ptr<lldb_private::StructuredDataPlugin> 430 StructuredDataPluginWP; 431typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP; 432typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP; 433typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP; 434typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> 435 SymbolContextSpecifierSP; 436typedef std::unique_ptr<lldb_private::SymbolVendor> SymbolVendorUP; 437typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP; 438typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> 439 SyntheticChildrenFrontEndSP; 440typedef std::shared_ptr<lldb_private::Target> TargetSP; 441typedef std::weak_ptr<lldb_private::Target> TargetWP; 442typedef std::shared_ptr<lldb_private::TargetProperties> TargetPropertiesSP; 443typedef std::shared_ptr<lldb_private::Thread> ThreadSP; 444typedef std::weak_ptr<lldb_private::Thread> ThreadWP; 445typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP; 446typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP; 447typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP; 448typedef std::shared_ptr<lldb_private::TraceOptions> TraceOptionsSP; 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::TypeFormatImpl> TypeFormatImplSP; 459typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> 460 TypeNameSpecifierImplSP; 461typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP; 462typedef std::shared_ptr<lldb_private::TypeSummaryOptions> TypeSummaryOptionsSP; 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_ 490