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