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