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