1 //===-- lldb-forward.h ------------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLDB_lldb_forward_h_ 11 #define LLDB_lldb_forward_h_ 12 13 #if defined(__cplusplus) 14 15 #include "lldb/Utility/SharingPtr.h" 16 17 //---------------------------------------------------------------------- 18 // lldb forward declarations 19 //---------------------------------------------------------------------- 20 namespace lldb_private { 21 22 class ABI; 23 class Address; 24 class AddressImpl; 25 class AddressRange; 26 class AddressResolver; 27 class ArchSpec; 28 class Args; 29 class ASTResultSynthesizer; 30 class Baton; 31 class Block; 32 class Breakpoint; 33 class BreakpointID; 34 class BreakpointIDList; 35 class BreakpointList; 36 class BreakpointLocation; 37 class BreakpointLocationCollection; 38 class BreakpointLocationList; 39 class BreakpointOptions; 40 class BreakpointResolver; 41 class BreakpointSite; 42 class BreakpointSiteList; 43 class BroadcastEventSpec; 44 class Broadcaster; 45 class BroadcasterManager; 46 class CPPLanguageRuntime; 47 class ClangASTContext; 48 class ClangASTImporter; 49 class ClangASTMetadata; 50 class ClangASTSource; 51 class ClangASTType; 52 class ClangNamespaceDecl; 53 class ClangExpression; 54 class ClangExpressionDeclMap; 55 class ClangExpressionParser; 56 class ClangExpressionVariable; 57 class ClangExpressionVariableList; 58 class ClangExpressionVariableList; 59 class ClangExpressionVariables; 60 class ClangFunction; 61 class ClangModulesDeclVendor; 62 class ClangPersistentVariables; 63 class ClangUserExpression; 64 class ClangUtilityFunction; 65 class CommandInterpreter; 66 class CommandInterpreterRunOptions; 67 class CommandObject; 68 class CommandReturnObject; 69 class Communication; 70 class CompactUnwindInfo; 71 class CompileUnit; 72 class Condition; 73 class Connection; 74 class ConnectionFileDescriptor; 75 class ConstString; 76 class CXXSyntheticChildren; 77 class DWARFCallFrameInfo; 78 class DWARFExpression; 79 class DataBuffer; 80 class DataEncoder; 81 class DataExtractor; 82 class Debugger; 83 class Declaration; 84 class Disassembler; 85 struct DumpValueObjectOptions; 86 class DynamicCheckerFunctions; 87 class DynamicLoader; 88 class Editline; 89 class EmulateInstruction; 90 class Error; 91 class EvaluateExpressionOptions; 92 class Event; 93 class EventData; 94 class ExecutionContext; 95 class ExecutionContextRef; 96 class ExecutionContextRefLocker; 97 class ExecutionContextScope; 98 class File; 99 class FileSpec; 100 class FileSpecList; 101 class Flags; 102 class TypeCategoryImpl; 103 class FormatManager; 104 class FormattersMatchCandidate; 105 class FuncUnwinders; 106 class Function; 107 class FunctionInfo; 108 class InlineFunctionInfo; 109 class Instruction; 110 class InstructionList; 111 class InstrumentationRuntime; 112 class IOHandler; 113 class IOObject; 114 class IRExecutionUnit; 115 class JITLoader; 116 class JITLoaderList; 117 class LanguageRuntime; 118 class MemoryRegionInfo; 119 class LineTable; 120 class Listener; 121 class Log; 122 class LogChannel; 123 class Mangled; 124 class Materializer; 125 class MemoryHistory; 126 class Module; 127 class ModuleList; 128 class ModuleSpec; 129 class ModuleSpecList; 130 class Mutex; 131 struct NameSearchContext; 132 class ObjCLanguageRuntime; 133 class ObjectContainer; 134 class OptionGroup; 135 class OptionGroupOptions; 136 class OptionGroupPlatform; 137 class ObjectFile; 138 class ObjectFileJITDelegate; 139 class OperatingSystem; 140 class Options; 141 class OptionValue; 142 class OptionValueArch; 143 class OptionValueArgs; 144 class OptionValueArray; 145 class OptionValueBoolean; 146 class OptionValueChar; 147 class OptionValueDictionary; 148 class OptionValueEnumeration; 149 class OptionValueFileSpec; 150 class OptionValueFileSpecList; 151 class OptionValueFormat; 152 class OptionValueLanguage; 153 class OptionValueFormatEntity; 154 class OptionValuePathMappings; 155 class OptionValueProperties; 156 class OptionValueRegex; 157 class OptionValueSInt64; 158 class OptionValueString; 159 class OptionValueUInt64; 160 class OptionValueUUID; 161 class NamedOption; 162 class PathMappingList; 163 class Platform; 164 class Process; 165 class ProcessAttachInfo; 166 class ProcessModID; 167 class ProcessInfo; 168 class ProcessInstanceInfo; 169 class ProcessInstanceInfoList; 170 class ProcessInstanceInfoMatch; 171 class ProcessLaunchInfo; 172 class Property; 173 struct PropertyDefinition; 174 class RegisterCheckpoint; 175 class RegisterContext; 176 class RegisterLocation; 177 class RegisterLocationList; 178 class RegisterValue; 179 class RegularExpression; 180 class Scalar; 181 class ScriptInterpreter; 182 class ScriptInterpreterLocker; 183 #ifndef LLDB_DISABLE_PYTHON 184 struct ScriptSummaryFormat; 185 #endif 186 class SearchFilter; 187 class Section; 188 class SectionImpl; 189 class SectionList; 190 class SectionLoadHistory; 191 class SectionLoadList; 192 class Settings; 193 class SourceManager; 194 class SourceManagerImpl; 195 class StackFrame; 196 class StackFrameImpl; 197 class StackFrameList; 198 class StackID; 199 class StopInfo; 200 class Stoppoint; 201 class StoppointCallbackContext; 202 class StoppointLocation; 203 class Stream; 204 template <unsigned N> class StreamBuffer; 205 class StreamFile; 206 class StreamString; 207 class StringList; 208 struct StringSummaryFormat; 209 class SystemRuntime; 210 class TypeSummaryImpl; 211 class TypeSummaryOptions; 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 TypeFilterImpl; 224 #ifndef LLDB_DISABLE_PYTHON 225 class ScriptedSyntheticChildren; 226 #endif 227 class Queue; 228 class QueueItem; 229 class QueueImpl; 230 class Target; 231 class TargetList; 232 class TargetProperties; 233 class Thread; 234 class ThreadCollection; 235 class ThreadList; 236 class ThreadPlan; 237 class ThreadPlanBase; 238 class ThreadPlanRunToAddress; 239 class ThreadPlanStepInstruction; 240 class ThreadPlanStepOut; 241 class ThreadPlanStepOverBreakpoint; 242 class ThreadPlanStepRange; 243 class ThreadPlanStepThrough; 244 class ThreadPlanTracer; 245 class ThreadSpec; 246 class TimeValue; 247 class Type; 248 class TypeAndOrName; 249 class TypeCategoryMap; 250 class TypeImpl; 251 class TypeList; 252 class TypeListImpl; 253 class TypeMemberImpl; 254 class TypeMemberFunctionImpl; 255 class TypeEnumMemberImpl; 256 class TypeEnumMemberListImpl; 257 class TypeFormatImpl; 258 class TypeNameSpecifierImpl; 259 class TypePair; 260 class TypeValidatorImpl; 261 class UUID; 262 class UnixSignals; 263 class Unwind; 264 class UnwindAssembly; 265 class UnwindPlan; 266 class UnwindTable; 267 class VMRange; 268 class Value; 269 class ValueList; 270 class ValueObject; 271 class ValueObjectChild; 272 class ValueObjectConstResult; 273 class ValueObjectConstResultChild; 274 class ValueObjectConstResultImpl; 275 class ValueObjectList; 276 class ValueObjectPrinter; 277 class Variable; 278 class VariableList; 279 class Watchpoint; 280 class WatchpointList; 281 class WatchpointOptions; 282 struct LineEntry; 283 284 } // namespace lldb_private 285 286 //---------------------------------------------------------------------- 287 // lldb forward declarations 288 //---------------------------------------------------------------------- 289 namespace lldb { 290 291 typedef std::shared_ptr<lldb_private::ABI> ABISP; 292 typedef std::shared_ptr<lldb_private::Baton> BatonSP; 293 typedef std::shared_ptr<lldb_private::Block> BlockSP; 294 typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP; 295 typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP; 296 typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP; 297 typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP; 298 typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP; 299 typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP; 300 typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP; 301 typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP; 302 typedef std::unique_ptr<lldb_private::ClangASTContext> ClangASTContextUP; 303 typedef std::unique_ptr<lldb_private::ClangASTImporter> ClangASTImporterUP; 304 typedef std::unique_ptr<lldb_private::ClangASTSource> ClangASTSourceUP; 305 typedef std::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP; 306 typedef std::unique_ptr<lldb_private::ClangModulesDeclVendor> ClangModulesDeclVendorUP; 307 typedef std::unique_ptr<lldb_private::ClangPersistentVariables> ClangPersistentVariablesUP; 308 typedef std::shared_ptr<lldb_private::ClangUserExpression> ClangUserExpressionSP; 309 typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP; 310 typedef std::shared_ptr<lldb_private::Communication> CommunicationSP; 311 typedef std::shared_ptr<lldb_private::Connection> ConnectionSP; 312 typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP; 313 typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP; 314 typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP; 315 typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP; 316 typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP; 317 typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP; 318 typedef std::unique_ptr<lldb_private::DynamicCheckerFunctions> DynamicCheckerFunctionsUP; 319 typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP; 320 typedef std::unique_ptr<lldb_private::DynamicLoader> DynamicLoaderUP; 321 typedef std::shared_ptr<lldb_private::Event> EventSP; 322 typedef std::shared_ptr<lldb_private::ExecutionContextRef> ExecutionContextRefSP; 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::FuncUnwinders> FuncUnwindersSP; 326 typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP; 327 typedef std::shared_ptr<lldb_private::Instruction> InstructionSP; 328 typedef std::shared_ptr<lldb_private::InstrumentationRuntime> InstrumentationRuntimeSP; 329 typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP; 330 typedef std::shared_ptr<lldb_private::IOObject> IOObjectSP; 331 typedef std::shared_ptr<lldb_private::JITLoader> JITLoaderSP; 332 typedef std::unique_ptr<lldb_private::JITLoaderList> JITLoaderListUP; 333 typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP; 334 typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP; 335 typedef std::unique_ptr<lldb_private::SystemRuntime> SystemRuntimeUP; 336 typedef std::shared_ptr<lldb_private::LineTable> LineTableSP; 337 typedef std::shared_ptr<lldb_private::Listener> ListenerSP; 338 typedef std::shared_ptr<lldb_private::LogChannel> LogChannelSP; 339 typedef std::shared_ptr<lldb_private::MemoryHistory> MemoryHistorySP; 340 typedef std::shared_ptr<lldb_private::Module> ModuleSP; 341 typedef std::weak_ptr<lldb_private::Module> ModuleWP; 342 typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP; 343 typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP; 344 typedef std::shared_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateSP; 345 typedef std::weak_ptr<lldb_private::ObjectFileJITDelegate> ObjectFileJITDelegateWP; 346 typedef std::unique_ptr<lldb_private::OperatingSystem> OperatingSystemUP; 347 typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP; 348 typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP; 349 typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP; 350 typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP; 351 typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP; 352 typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP; 353 typedef std::shared_ptr<lldb_private::OptionValueDictionary> OptionValueDictionarySP; 354 typedef std::shared_ptr<lldb_private::OptionValueFileSpec> OptionValueFileSpecSP; 355 typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> OptionValueFileSpecListSP; 356 typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP; 357 typedef std::shared_ptr<lldb_private::OptionValuePathMappings> OptionValuePathMappingsSP; 358 typedef std::shared_ptr<lldb_private::OptionValueProperties> OptionValuePropertiesSP; 359 typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP; 360 typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP; 361 typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP; 362 typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP; 363 typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP; 364 typedef std::shared_ptr<lldb_private::Platform> PlatformSP; 365 typedef std::shared_ptr<lldb_private::Process> ProcessSP; 366 typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP; 367 typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP; 368 typedef std::weak_ptr<lldb_private::Process> ProcessWP; 369 typedef std::shared_ptr<lldb_private::Property> PropertySP; 370 typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP; 371 typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP; 372 typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP; 373 typedef std::shared_ptr<lldb_private::Queue> QueueSP; 374 typedef std::weak_ptr<lldb_private::Queue> QueueWP; 375 typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP; 376 #ifndef LLDB_DISABLE_PYTHON 377 typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP; 378 #endif // #ifndef LLDB_DISABLE_PYTHON 379 typedef std::shared_ptr<lldb_private::Section> SectionSP; 380 typedef std::unique_ptr<lldb_private::SectionList> SectionListUP; 381 typedef std::weak_ptr<lldb_private::Section> SectionWP; 382 typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP; 383 typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP; 384 typedef std::shared_ptr<lldb_private::Settings> SettingsSP; 385 typedef std::unique_ptr<lldb_private::SourceManager> SourceManagerUP; 386 typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP; 387 typedef std::unique_ptr<lldb_private::StackFrame> StackFrameUP; 388 typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP; 389 typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP; 390 typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP; 391 typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP; 392 typedef std::shared_ptr<lldb_private::Stream> StreamSP; 393 typedef std::weak_ptr<lldb_private::Stream> StreamWP; 394 typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP; 395 typedef std::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP; 396 typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP; 397 typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP; 398 typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP; 399 typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP; 400 typedef std::unique_ptr<lldb_private::SymbolVendor> SymbolVendorUP; 401 typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP; 402 typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP; 403 typedef std::shared_ptr<lldb_private::Target> TargetSP; 404 typedef std::weak_ptr<lldb_private::Target> TargetWP; 405 typedef std::shared_ptr<lldb_private::TargetProperties> TargetPropertiesSP; 406 typedef std::shared_ptr<lldb_private::Thread> ThreadSP; 407 typedef std::weak_ptr<lldb_private::Thread> ThreadWP; 408 typedef std::shared_ptr<lldb_private::ThreadCollection> ThreadCollectionSP; 409 typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP; 410 typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP; 411 typedef std::shared_ptr<lldb_private::Type> TypeSP; 412 typedef std::weak_ptr<lldb_private::Type> TypeWP; 413 typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP; 414 typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP; 415 typedef std::shared_ptr<lldb_private::TypeMemberFunctionImpl> TypeMemberFunctionImplSP; 416 typedef std::shared_ptr<lldb_private::TypeEnumMemberImpl> TypeEnumMemberImplSP; 417 typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP; 418 typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP; 419 typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP; 420 typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP; 421 typedef std::shared_ptr<lldb_private::TypeSummaryOptions> TypeSummaryOptionsSP; 422 typedef std::shared_ptr<lldb_private::TypeValidatorImpl> TypeValidatorImplSP; 423 #ifndef LLDB_DISABLE_PYTHON 424 typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> ScriptedSyntheticChildrenSP; 425 #endif 426 typedef std::shared_ptr<lldb_private::UnixSignals> UnixSignalsSP; 427 typedef std::weak_ptr<lldb_private::UnixSignals> UnixSignalsWP; 428 typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP; 429 typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP; 430 typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP; 431 typedef std::shared_ptr<lldb_private::Value> ValueSP; 432 typedef std::shared_ptr<lldb_private::ValueList> ValueListSP; 433 typedef std::shared_ptr<lldb_private::Variable> VariableSP; 434 typedef std::shared_ptr<lldb_private::VariableList> VariableListSP; 435 typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP; 436 typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP; 437 438 } // namespace lldb 439 440 441 #endif // #if defined(__cplusplus) 442 #endif // LLDB_lldb_forward_h_ 443