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 ScriptedThreadInterface; 194 class ScriptedThreadPlanInterface; 195 class ScriptedSyntheticChildren; 196 class SearchFilter; 197 class Section; 198 class SectionList; 199 class SectionLoadHistory; 200 class SectionLoadList; 201 class Settings; 202 class SourceManager; 203 class SourceManagerImpl; 204 class StackFrame; 205 class StackFrameList; 206 class StackFrameRecognizer; 207 class StackFrameRecognizerManager; 208 class StackID; 209 class Status; 210 class StopInfo; 211 class Stoppoint; 212 class StoppointCallbackContext; 213 class Stream; 214 class StreamFile; 215 class StreamString; 216 class StringList; 217 class StringTableReader; 218 class StructuredDataImpl; 219 class StructuredDataPlugin; 220 class SupportFile; 221 class Symbol; 222 class SymbolContext; 223 class SymbolContextList; 224 class SymbolContextScope; 225 class SymbolContextSpecifier; 226 class SymbolFile; 227 class SymbolFileType; 228 class SymbolLocator; 229 class SymbolVendor; 230 class Symtab; 231 class SyntheticChildren; 232 class SyntheticChildrenFrontEnd; 233 class SystemRuntime; 234 class Target; 235 class TargetList; 236 class TargetProperties; 237 class Thread; 238 class ThreadCollection; 239 class ThreadList; 240 class ThreadPlan; 241 class ThreadPlanBase; 242 class ThreadPlanRunToAddress; 243 class ThreadPlanStepInstruction; 244 class ThreadPlanStepOut; 245 class ThreadPlanStepOverBreakpoint; 246 class ThreadPlanStepRange; 247 class ThreadPlanStepThrough; 248 class ThreadPlanTracer; 249 class ThreadSpec; 250 class ThreadPostMortemTrace; 251 class ThreadedCommunication; 252 class Trace; 253 class TraceCursor; 254 class TraceExporter; 255 class Type; 256 class TypeAndOrName; 257 class TypeCategoryImpl; 258 class TypeCategoryMap; 259 class TypeEnumMemberImpl; 260 class TypeEnumMemberListImpl; 261 class TypeFilterImpl; 262 class TypeFormatImpl; 263 class TypeImpl; 264 class TypeList; 265 class TypeListImpl; 266 class TypeMap; 267 class TypeQuery; 268 class TypeMemberFunctionImpl; 269 class TypeMemberImpl; 270 class TypeNameSpecifierImpl; 271 class TypeResults; 272 class TypeSummaryImpl; 273 class TypeSummaryOptions; 274 class TypeSystem; 275 class TypeSystemClang; 276 class UUID; 277 class UnixSignals; 278 class Unwind; 279 class UnwindAssembly; 280 class UnwindPlan; 281 class UnwindTable; 282 class UserExpression; 283 class UtilityFunction; 284 class VMRange; 285 class Value; 286 class ValueList; 287 class ValueObject; 288 class ValueObjectChild; 289 class ValueObjectConstResult; 290 class ValueObjectConstResultChild; 291 class ValueObjectConstResultImpl; 292 class ValueObjectList; 293 class ValueObjectPrinter; 294 class Variable; 295 class VariableList; 296 class Watchpoint; 297 class WatchpointList; 298 class WatchpointOptions; 299 class WatchpointResource; 300 class WatchpointResourceCollection; 301 class WatchpointSetOptions; 302 struct CompilerContext; 303 struct LineEntry; 304 struct PropertyDefinition; 305 struct ScriptSummaryFormat; 306 struct StatisticsOptions; 307 struct StringSummaryFormat; 308 template <unsigned N> class StreamBuffer; 309 310 } // namespace lldb_private 311 312 // lldb forward declarations 313 namespace lldb { 314 315 typedef std::shared_ptr<lldb_private::ABI> ABISP; 316 typedef std::unique_ptr<lldb_private::AddressRange> AddressRangeUP; 317 typedef std::shared_ptr<lldb_private::Baton> BatonSP; 318 typedef std::shared_ptr<lldb_private::Block> BlockSP; 319 typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP; 320 typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP; 321 typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP; 322 typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP; 323 typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP; 324 typedef std::shared_ptr<lldb_private::BreakpointPrecondition> 325 BreakpointPreconditionSP; 326 typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP; 327 typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP; 328 typedef std::shared_ptr<lldb_private::BroadcasterManager> BroadcasterManagerSP; 329 typedef std::weak_ptr<lldb_private::BroadcasterManager> BroadcasterManagerWP; 330 typedef std::shared_ptr<lldb_private::UserExpression> UserExpressionSP; 331 typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP; 332 typedef std::shared_ptr<lldb_private::Connection> ConnectionSP; 333 typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP; 334 typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP; 335 typedef std::shared_ptr<lldb_private::WritableDataBuffer> WritableDataBufferSP; 336 typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP; 337 typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP; 338 typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP; 339 typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP; 340 typedef std::unique_ptr<lldb_private::DynamicCheckerFunctions> 341 DynamicCheckerFunctionsUP; 342 typedef std::unique_ptr<lldb_private::DynamicLoader> DynamicLoaderUP; 343 typedef std::shared_ptr<lldb_private::Event> EventSP; 344 typedef std::shared_ptr<lldb_private::EventData> EventDataSP; 345 typedef std::shared_ptr<lldb_private::EventDataStructuredData> 346 EventDataStructuredDataSP; 347 typedef std::shared_ptr<lldb_private::ExecutionContextRef> 348 ExecutionContextRefSP; 349 typedef std::shared_ptr<lldb_private::ExpressionVariable> ExpressionVariableSP; 350 typedef std::unique_ptr<lldb_private::File> FileUP; 351 typedef std::shared_ptr<lldb_private::File> FileSP; 352 typedef std::shared_ptr<lldb_private::FormatEntity::Entry> FormatEntrySP; 353 typedef std::shared_ptr<lldb_private::Function> FunctionSP; 354 typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP; 355 typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP; 356 typedef std::shared_ptr<lldb_private::Instruction> InstructionSP; 357 typedef std::shared_ptr<lldb_private::InstrumentationRuntime> 358 InstrumentationRuntimeSP; 359 typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP; 360 typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP; 361 typedef std::shared_ptr<lldb_private::IRExecutionUnit> IRExecutionUnitSP; 362 typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP; 363 typedef std::unique_ptr<lldb_private::JITLoaderList> JITLoaderListUP; 364 typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP; 365 typedef std::unique_ptr<lldb_private::SystemRuntime> SystemRuntimeUP; 366 typedef std::shared_ptr<lldb_private::Listener> ListenerSP; 367 typedef std::weak_ptr<lldb_private::Listener> ListenerWP; 368 typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP; 369 typedef std::unique_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoUP; 370 typedef std::shared_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoSP; 371 typedef std::shared_ptr<lldb_private::Module> ModuleSP; 372 typedef std::weak_ptr<lldb_private::Module> ModuleWP; 373 typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP; 374 typedef std::shared_ptr<lldb_private::ObjectContainer> ObjectContainerSP; 375 typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate> 376 ObjectFileJITDelegateSP; 377 typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate> 378 ObjectFileJITDelegateWP; 379 typedef std::unique_ptr<lldb_private::OperatingSystem> OperatingSystemUP; 380 typedef std::shared_ptr<lldb_private::OperatingSystemInterface> 381 OperatingSystemInterfaceSP; 382 typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP; 383 typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP; 384 typedef std::shared_ptr<lldb_private::OptionValueProperties> 385 OptionValuePropertiesSP; 386 typedef std::shared_ptr<lldb_private::Platform> PlatformSP; 387 typedef std::shared_ptr<lldb_private::Process> ProcessSP; 388 typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP; 389 typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP; 390 typedef std::weak_ptr<lldb_private::Process> ProcessWP; 391 typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP; 392 typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP; 393 typedef std::shared_ptr<lldb_private::RegisterTypeBuilder> 394 RegisterTypeBuilderSP; 395 typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP; 396 typedef std::shared_ptr<lldb_private::Queue> QueueSP; 397 typedef std::weak_ptr<lldb_private::Queue> QueueWP; 398 typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP; 399 typedef std::shared_ptr<lldb_private::REPL> REPLSP; 400 typedef std::shared_ptr<lldb_private::RecognizedStackFrame> 401 RecognizedStackFrameSP; 402 typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> 403 ScriptSummaryFormatSP; 404 typedef std::shared_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterSP; 405 typedef std::shared_ptr<lldb_private::ScriptedMetadata> ScriptedMetadataSP; 406 typedef std::unique_ptr<lldb_private::ScriptedPlatformInterface> 407 ScriptedPlatformInterfaceUP; 408 typedef std::unique_ptr<lldb_private::ScriptedProcessInterface> 409 ScriptedProcessInterfaceUP; 410 typedef std::shared_ptr<lldb_private::ScriptedThreadInterface> 411 ScriptedThreadInterfaceSP; 412 typedef std::shared_ptr<lldb_private::ScriptedThreadPlanInterface> 413 ScriptedThreadPlanInterfaceSP; 414 typedef std::shared_ptr<lldb_private::Section> SectionSP; 415 typedef std::unique_ptr<lldb_private::SectionList> SectionListUP; 416 typedef std::weak_ptr<lldb_private::Section> SectionWP; 417 typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP; 418 typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP; 419 typedef std::unique_ptr<lldb_private::SourceManager> SourceManagerUP; 420 typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP; 421 typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP; 422 typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP; 423 typedef std::shared_ptr<lldb_private::StackFrameRecognizer> 424 StackFrameRecognizerSP; 425 typedef std::unique_ptr<lldb_private::StackFrameRecognizerManager> 426 StackFrameRecognizerManagerUP; 427 typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP; 428 typedef std::shared_ptr<lldb_private::Stream> StreamSP; 429 typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP; 430 typedef std::shared_ptr<lldb_private::StringSummaryFormat> 431 StringTypeSummaryImplSP; 432 typedef std::unique_ptr<lldb_private::StructuredDataImpl> StructuredDataImplUP; 433 typedef std::shared_ptr<lldb_private::StructuredDataPlugin> 434 StructuredDataPluginSP; 435 typedef std::weak_ptr<lldb_private::StructuredDataPlugin> 436 StructuredDataPluginWP; 437 typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP; 438 typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> 439 SymbolContextSpecifierSP; 440 typedef std::unique_ptr<lldb_private::SymbolVendor> SymbolVendorUP; 441 typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP; 442 typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> 443 SyntheticChildrenFrontEndSP; 444 typedef std::shared_ptr<lldb_private::Target> TargetSP; 445 typedef std::weak_ptr<lldb_private::Target> TargetWP; 446 typedef std::shared_ptr<lldb_private::Thread> ThreadSP; 447 typedef std::weak_ptr<lldb_private::Thread> ThreadWP; 448 typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP; 449 typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP; 450 typedef std::shared_ptr<lldb_private::ThreadPostMortemTrace> 451 ThreadPostMortemTraceSP; 452 typedef std::weak_ptr<lldb_private::ThreadPlan> ThreadPlanWP; 453 typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP; 454 typedef std::shared_ptr<lldb_private::Trace> TraceSP; 455 typedef std::unique_ptr<lldb_private::TraceExporter> TraceExporterUP; 456 typedef std::shared_ptr<lldb_private::TraceCursor> TraceCursorSP; 457 typedef std::shared_ptr<lldb_private::Type> TypeSP; 458 typedef std::weak_ptr<lldb_private::Type> TypeWP; 459 typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP; 460 typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP; 461 typedef std::shared_ptr<lldb_private::TypeMemberFunctionImpl> 462 TypeMemberFunctionImplSP; 463 typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP; 464 typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP; 465 typedef std::shared_ptr<lldb_private::TypeSystem> TypeSystemSP; 466 typedef std::shared_ptr<lldb_private::TypeSystemClang> TypeSystemClangSP; 467 typedef std::weak_ptr<lldb_private::TypeSystem> TypeSystemWP; 468 typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP; 469 typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> 470 TypeNameSpecifierImplSP; 471 typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP; 472 typedef std::shared_ptr<lldb_private::TypeSummaryOptions> TypeSummaryOptionsSP; 473 typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> 474 ScriptedSyntheticChildrenSP; 475 typedef std::shared_ptr<lldb_private::SupportFile> SupportFileSP; 476 typedef std::shared_ptr<lldb_private::UnixSignals> UnixSignalsSP; 477 typedef std::weak_ptr<lldb_private::UnixSignals> UnixSignalsWP; 478 typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP; 479 typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP; 480 typedef std::shared_ptr<lldb_private::ValueObject> ValueObjectSP; 481 typedef std::shared_ptr<lldb_private::Value> ValueSP; 482 typedef std::shared_ptr<lldb_private::Variable> VariableSP; 483 typedef std::shared_ptr<lldb_private::VariableList> VariableListSP; 484 typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP; 485 typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP; 486 typedef std::shared_ptr<lldb_private::WatchpointResource> WatchpointResourceSP; 487 488 } // namespace lldb 489 490 #endif // LLDB_LLDB_FORWARD_H 491