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