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