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