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