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 "lldb/Utility/SharingPtr.h" 15 16 // lldb forward declarations 17 namespace lldb_private { 18 19 class ABI; 20 class Address; 21 class AddressRange; 22 class AddressResolver; 23 class ArchSpec; 24 class ArmUnwindInfo; 25 class Args; 26 class ASTResultSynthesizer; 27 class ASTStructExtractor; 28 class Baton; 29 class Block; 30 class Breakpoint; 31 class BreakpointID; 32 class BreakpointIDList; 33 class BreakpointList; 34 class BreakpointLocation; 35 class BreakpointLocationCollection; 36 class BreakpointLocationList; 37 class BreakpointName; 38 class BreakpointOptionGroup; 39 class BreakpointOptions; 40 class BreakpointPrecondition; 41 class BreakpointResolver; 42 class BreakpointSite; 43 class BreakpointSiteList; 44 class BroadcastEventSpec; 45 class Broadcaster; 46 class BroadcasterManager; 47 class CallFrameInfo; 48 class ClangASTContext; 49 class ClangASTImporter; 50 class ClangASTMetadata; 51 class ClangASTSource; 52 class ClangExpressionDeclMap; 53 class ClangExpressionParser; 54 class ClangExpressionVariable; 55 class ClangModulesDeclVendor; 56 class ClangPersistentVariables; 57 class CommandInterpreter; 58 class CommandInterpreterRunOptions; 59 class CommandObject; 60 class CommandObjectMultiword; 61 class CommandReturnObject; 62 class Communication; 63 class CompactUnwindInfo; 64 struct CompilerContext; 65 class CompilerDecl; 66 class CompilerDeclContext; 67 class CompilerType; 68 class CompileUnit; 69 class Connection; 70 class ConnectionFileDescriptor; 71 class ConstString; 72 class CXXSyntheticChildren; 73 class DWARFCallFrameInfo; 74 class DWARFDataExtractor; 75 class DWARFExpression; 76 class DataBuffer; 77 class DataEncoder; 78 class DataExtractor; 79 class Debugger; 80 class Declaration; 81 class DiagnosticManager; 82 class Disassembler; 83 class DumpValueObjectOptions; 84 class DynamicCheckerFunctions; 85 class DynamicLoader; 86 class Editline; 87 class EmulateInstruction; 88 class Status; 89 class EvaluateExpressionOptions; 90 class Event; 91 class EventData; 92 class EventDataStructuredData; 93 class ExecutionContext; 94 class ExecutionContextRef; 95 class ExecutionContextScope; 96 class Expression; 97 class ExpressionVariable; 98 class ExpressionVariableList; 99 class ExpressionTypeSystemHelper; 100 class File; 101 class FileSpec; 102 class FileSpecList; 103 class Flags; 104 class TypeCategoryImpl; 105 class FormatManager; 106 class FormattersMatchCandidate; 107 class FuncUnwinders; 108 class Function; 109 class FunctionInfo; 110 class InlineFunctionInfo; 111 class Instruction; 112 class InstructionList; 113 class InstrumentationRuntime; 114 class IOHandler; 115 class IOObject; 116 class IRExecutionUnit; 117 class JITLoader; 118 class JITLoaderList; 119 class Language; 120 class LanguageCategory; 121 class LanguageRuntime; 122 class LineTable; 123 class Listener; 124 class Log; 125 class Mangled; 126 class Materializer; 127 class MemoryHistory; 128 class MemoryRegionInfo; 129 class MemoryRegionInfos; 130 class Module; 131 class ModuleList; 132 class ModuleSpec; 133 class ModuleSpecList; 134 struct NameSearchContext; 135 class ObjectContainer; 136 class OptionGroup; 137 class OptionGroupOptions; 138 class OptionGroupPlatform; 139 class ObjectFile; 140 class ObjectFileJITDelegate; 141 class OperatingSystem; 142 class Options; 143 class OptionValue; 144 class OptionValueArch; 145 class OptionValueArgs; 146 class OptionValueArray; 147 class OptionValueBoolean; 148 class OptionValueChar; 149 class OptionValueDictionary; 150 class OptionValueEnumeration; 151 class OptionValueFileSpec; 152 class OptionValueFileSpecList; 153 class OptionValueFormat; 154 class OptionValueLanguage; 155 class OptionValueFormatEntity; 156 class OptionValuePathMappings; 157 class OptionValueProperties; 158 class OptionValueRegex; 159 class OptionValueSInt64; 160 class OptionValueString; 161 class OptionValueUInt64; 162 class OptionValueUUID; 163 class PathMappingList; 164 class FunctionCaller; 165 class PersistentExpressionState; 166 class Platform; 167 class Process; 168 class ProcessAttachInfo; 169 class ProcessModID; 170 class ProcessInfo; 171 class ProcessInstanceInfo; 172 class ProcessInstanceInfoList; 173 class ProcessInstanceInfoMatch; 174 class ProcessLaunchInfo; 175 class Property; 176 struct PropertyDefinition; 177 class RecognizedStackFrame; 178 class RegisterCheckpoint; 179 class RegisterContext; 180 class RegisterValue; 181 class RegularExpression; 182 class REPL; 183 class RichManglingContext; 184 class Scalar; 185 class ScriptInterpreter; 186 class ScriptInterpreterLocker; 187 struct ScriptSummaryFormat; 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 StopInfo; 202 class Stoppoint; 203 class StoppointCallbackContext; 204 class StoppointLocation; 205 class Stream; 206 template <unsigned N> class StreamBuffer; 207 class StreamFile; 208 class StreamString; 209 class StringList; 210 struct StringSummaryFormat; 211 class StructuredDataImpl; 212 class StructuredDataPlugin; 213 class SystemRuntime; 214 class TypeSummaryImpl; 215 class TypeSummaryOptions; 216 class Symbol; 217 class SymbolContext; 218 class SymbolContextList; 219 class SymbolContextScope; 220 class SymbolContextSpecifier; 221 class SymbolFile; 222 class SymbolFileType; 223 class SymbolVendor; 224 class Symtab; 225 class SyntheticChildren; 226 class SyntheticChildrenFrontEnd; 227 class TypeFilterImpl; 228 class TypeSystem; 229 class ScriptedSyntheticChildren; 230 class Queue; 231 class QueueItem; 232 class QueueImpl; 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 TraceOptions; 250 class Type; 251 class TypeAndOrName; 252 class TypeCategoryMap; 253 class TypeImpl; 254 class TypeList; 255 class TypeMap; 256 class TypeListImpl; 257 class TypeMemberImpl; 258 class TypeMemberFunctionImpl; 259 class TypeEnumMemberImpl; 260 class TypeEnumMemberListImpl; 261 class TypeFormatImpl; 262 class TypeNameSpecifierImpl; 263 class UUID; 264 class UnixSignals; 265 class Unwind; 266 class UnwindAssembly; 267 class UnwindPlan; 268 class UnwindTable; 269 class UserExpression; 270 class UtilityFunction; 271 class VMRange; 272 class Value; 273 class ValueList; 274 class ValueObject; 275 class ValueObjectChild; 276 class ValueObjectConstResult; 277 class ValueObjectConstResultChild; 278 class ValueObjectConstResultImpl; 279 class ValueObjectList; 280 class ValueObjectPrinter; 281 class Variable; 282 class VariableList; 283 class Watchpoint; 284 class WatchpointList; 285 class WatchpointOptions; 286 struct LineEntry; 287 288 } // namespace lldb_private 289 290 // lldb forward declarations 291 namespace lldb { 292 293 typedef std::shared_ptr<lldb_private::ABI> ABISP; 294 typedef std::shared_ptr<lldb_private::Baton> BatonSP; 295 typedef std::shared_ptr<lldb_private::Block> BlockSP; 296 typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP; 297 typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP; 298 typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP; 299 typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP; 300 typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP; 301 typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP; 302 typedef std::shared_ptr<lldb_private::BreakpointPrecondition> BreakpointPreconditionSP; 303 typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP; 304 typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP; 305 typedef std::shared_ptr<lldb_private::BroadcasterManager> BroadcasterManagerSP; 306 typedef std::weak_ptr<lldb_private::BroadcasterManager> BroadcasterManagerWP; 307 typedef std::unique_ptr<lldb_private::ClangASTContext> ClangASTContextUP; 308 typedef std::shared_ptr<lldb_private::ClangASTImporter> ClangASTImporterSP; 309 typedef std::unique_ptr<lldb_private::ClangModulesDeclVendor> 310 ClangModulesDeclVendorUP; 311 typedef std::unique_ptr<lldb_private::ClangPersistentVariables> 312 ClangPersistentVariablesUP; 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::Communication> CommunicationSP; 316 typedef std::shared_ptr<lldb_private::Connection> ConnectionSP; 317 typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP; 318 typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP; 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::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP; 326 typedef std::unique_ptr<lldb_private::DynamicLoader> DynamicLoaderUP; 327 typedef std::shared_ptr<lldb_private::Event> EventSP; 328 typedef std::shared_ptr<lldb_private::EventData> EventDataSP; 329 typedef std::shared_ptr<lldb_private::EventDataStructuredData> 330 EventDataStructuredDataSP; 331 typedef std::shared_ptr<lldb_private::ExecutionContextRef> 332 ExecutionContextRefSP; 333 typedef std::shared_ptr<lldb_private::ExpressionVariable> ExpressionVariableSP; 334 typedef std::unique_ptr<lldb_private::File> FileUP; 335 typedef std::shared_ptr<lldb_private::File> FileSP; 336 typedef std::shared_ptr<lldb_private::Function> FunctionSP; 337 typedef std::shared_ptr<lldb_private::FunctionCaller> FunctionCallerSP; 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::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP; 350 typedef std::unique_ptr<lldb_private::SystemRuntime> SystemRuntimeUP; 351 typedef std::shared_ptr<lldb_private::LineTable> LineTableSP; 352 typedef std::shared_ptr<lldb_private::Listener> ListenerSP; 353 typedef std::weak_ptr<lldb_private::Listener> ListenerWP; 354 typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP; 355 typedef std::unique_ptr<lldb_private::MemoryRegionInfo> MemoryRegionInfoUP; 356 typedef std::shared_ptr<lldb_private::Module> ModuleSP; 357 typedef std::weak_ptr<lldb_private::Module> ModuleWP; 358 typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP; 359 typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP; 360 typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate> 361 ObjectFileJITDelegateSP; 362 typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate> 363 ObjectFileJITDelegateWP; 364 typedef std::unique_ptr<lldb_private::OperatingSystem> OperatingSystemUP; 365 typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP; 366 typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP; 367 typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP; 368 typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP; 369 typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP; 370 typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP; 371 typedef std::shared_ptr<lldb_private::OptionValueDictionary> 372 OptionValueDictionarySP; 373 typedef std::shared_ptr<lldb_private::OptionValueFileSpec> 374 OptionValueFileSpecSP; 375 typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> 376 OptionValueFileSpecListSP; 377 typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP; 378 typedef std::shared_ptr<lldb_private::OptionValuePathMappings> 379 OptionValuePathMappingsSP; 380 typedef std::shared_ptr<lldb_private::OptionValueProperties> 381 OptionValuePropertiesSP; 382 typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP; 383 typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP; 384 typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP; 385 typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP; 386 typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP; 387 typedef std::shared_ptr<lldb_private::Platform> PlatformSP; 388 typedef std::shared_ptr<lldb_private::Process> ProcessSP; 389 typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP; 390 typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP; 391 typedef std::weak_ptr<lldb_private::Process> ProcessWP; 392 typedef std::shared_ptr<lldb_private::Property> PropertySP; 393 typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP; 394 typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP; 395 typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP; 396 typedef std::shared_ptr<lldb_private::Queue> QueueSP; 397 typedef std::weak_ptr<lldb_private::Queue> QueueWP; 398 typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP; 399 typedef std::shared_ptr<lldb_private::REPL> REPLSP; 400 typedef std::shared_ptr<lldb_private::RecognizedStackFrame> 401 RecognizedStackFrameSP; 402 typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> 403 ScriptSummaryFormatSP; 404 typedef std::shared_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterSP; 405 typedef std::unique_ptr<lldb_private::ScriptInterpreter> ScriptInterpreterUP; 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::shared_ptr<lldb_private::Settings> SettingsSP; 412 typedef std::unique_ptr<lldb_private::SourceManager> SourceManagerUP; 413 typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP; 414 typedef std::unique_ptr<lldb_private::StackFrame> StackFrameUP; 415 typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP; 416 typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP; 417 typedef std::shared_ptr<lldb_private::StackFrameRecognizer> 418 StackFrameRecognizerSP; 419 typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP; 420 typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP; 421 typedef std::shared_ptr<lldb_private::Stream> StreamSP; 422 typedef std::weak_ptr<lldb_private::Stream> StreamWP; 423 typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP; 424 typedef std::shared_ptr<lldb_private::StringSummaryFormat> 425 StringTypeSummaryImplSP; 426 typedef std::unique_ptr<lldb_private::StructuredDataImpl> StructuredDataImplUP; 427 typedef std::shared_ptr<lldb_private::StructuredDataPlugin> 428 StructuredDataPluginSP; 429 typedef std::weak_ptr<lldb_private::StructuredDataPlugin> 430 StructuredDataPluginWP; 431 typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP; 432 typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP; 433 typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP; 434 typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> 435 SymbolContextSpecifierSP; 436 typedef std::unique_ptr<lldb_private::SymbolVendor> SymbolVendorUP; 437 typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP; 438 typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> 439 SyntheticChildrenFrontEndSP; 440 typedef std::shared_ptr<lldb_private::Target> TargetSP; 441 typedef std::weak_ptr<lldb_private::Target> TargetWP; 442 typedef std::shared_ptr<lldb_private::TargetProperties> TargetPropertiesSP; 443 typedef std::shared_ptr<lldb_private::Thread> ThreadSP; 444 typedef std::weak_ptr<lldb_private::Thread> ThreadWP; 445 typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP; 446 typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP; 447 typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP; 448 typedef std::shared_ptr<lldb_private::TraceOptions> TraceOptionsSP; 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::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::UtilityFunction> UtilityFunctionSP; 470 typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP; 471 typedef std::shared_ptr<lldb_private::Value> ValueSP; 472 typedef std::shared_ptr<lldb_private::ValueList> ValueListSP; 473 typedef std::shared_ptr<lldb_private::Variable> VariableSP; 474 typedef std::shared_ptr<lldb_private::VariableList> VariableListSP; 475 typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP; 476 typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP; 477 478 } // namespace lldb 479 480 // llvm forward declarations 481 namespace llvm { 482 483 struct ItaniumPartialDemangler; 484 class StringRef; 485 486 } // namespace llvm 487 488 #endif // #if defined(__cplusplus) 489 #endif // LLDB_lldb_forward_h_ 490