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