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 ClangPersistentVariables; 62 class ClangUserExpression; 63 class ClangUtilityFunction; 64 class CommandInterpreter; 65 class CommandObject; 66 class CommandReturnObject; 67 class Communication; 68 class CompileUnit; 69 class Condition; 70 class Connection; 71 class ConnectionFileDescriptor; 72 class ConstString; 73 class CXXSyntheticChildren; 74 class DWARFCallFrameInfo; 75 class DWARFExpression; 76 class DataBuffer; 77 class DataEncoder; 78 class DataExtractor; 79 class Debugger; 80 class Declaration; 81 class Disassembler; 82 struct DumpValueObjectOptions; 83 class DynamicLibrary; 84 class DynamicLoader; 85 class Editline; 86 class EmulateInstruction; 87 class Error; 88 class EvaluateExpressionOptions; 89 class Event; 90 class EventData; 91 class ExecutionContext; 92 class ExecutionContextRef; 93 class ExecutionContextRefLocker; 94 class ExecutionContextScope; 95 class File; 96 class FileSpec; 97 class FileSpecList; 98 class Flags; 99 class TypeCategoryImpl; 100 class FormatManager; 101 class FormattersMatchCandidate; 102 class FuncUnwinders; 103 class Function; 104 class FunctionInfo; 105 class InlineFunctionInfo; 106 class Instruction; 107 class InstructionList; 108 class IOHandler; 109 class IRExecutionUnit; 110 class LanguageRuntime; 111 class SystemRuntime; 112 class LineTable; 113 class Listener; 114 class Log; 115 class LogChannel; 116 class Mangled; 117 class Materializer; 118 class Module; 119 class ModuleList; 120 class ModuleSpec; 121 class ModuleSpecList; 122 class Mutex; 123 struct NameSearchContext; 124 class ObjCLanguageRuntime; 125 class ObjectContainer; 126 class OptionGroup; 127 class OptionGroupOptions; 128 class OptionGroupPlatform; 129 class ObjectFile; 130 class OperatingSystem; 131 class Options; 132 class OptionValue; 133 class OptionValueArch; 134 class OptionValueArgs; 135 class OptionValueArray; 136 class OptionValueBoolean; 137 class OptionValueDictionary; 138 class OptionValueEnumeration; 139 class OptionValueFileSpec; 140 class OptionValueFileSpecList; 141 class OptionValueFormat; 142 class OptionValuePathMappings; 143 class OptionValueProperties; 144 class OptionValueRegex; 145 class OptionValueSInt64; 146 class OptionValueString; 147 class OptionValueUInt64; 148 class OptionValueUUID; 149 class NamedOption; 150 class PathMappingList; 151 class Platform; 152 class Process; 153 class ProcessAttachInfo; 154 class ProcessModID; 155 class ProcessInfo; 156 class ProcessInstanceInfo; 157 class ProcessInstanceInfoList; 158 class ProcessInstanceInfoMatch; 159 class ProcessLaunchInfo; 160 class Property; 161 struct PropertyDefinition; 162 class PythonArray; 163 class PythonDictionary; 164 class PythonInteger; 165 class PythonObject; 166 class PythonString; 167 class RegisterCheckpoint; 168 class RegisterContext; 169 class RegisterLocation; 170 class RegisterLocationList; 171 class RegisterValue; 172 class RegularExpression; 173 class Scalar; 174 class ScriptInterpreter; 175 class ScriptInterpreterLocker; 176 class ScriptInterpreterObject; 177 #ifndef LLDB_DISABLE_PYTHON 178 class ScriptInterpreterPython; 179 struct ScriptSummaryFormat; 180 #endif 181 class SearchFilter; 182 class Section; 183 class SectionImpl; 184 class SectionList; 185 class SectionLoadHistory; 186 class SectionLoadList; 187 class Settings; 188 class SourceManager; 189 class SourceManagerImpl; 190 class StackFrame; 191 class StackFrameImpl; 192 class StackFrameList; 193 class StackID; 194 class StopInfo; 195 class Stoppoint; 196 class StoppointCallbackContext; 197 class StoppointLocation; 198 class Stream; 199 template <unsigned N> class StreamBuffer; 200 class StreamFile; 201 class StreamString; 202 class StringList; 203 struct StringSummaryFormat; 204 class TypeSummaryImpl; 205 class Symbol; 206 class SymbolContext; 207 class SymbolContextList; 208 class SymbolContextScope; 209 class SymbolContextSpecifier; 210 class SymbolFile; 211 class SymbolFileType; 212 class SymbolVendor; 213 class Symtab; 214 class SyntheticChildren; 215 class SyntheticChildrenFrontEnd; 216 class TypeFilterImpl; 217 #ifndef LLDB_DISABLE_PYTHON 218 class ScriptedSyntheticChildren; 219 #endif 220 class Queue; 221 class QueueItem; 222 class QueueImpl; 223 class Target; 224 class TargetList; 225 class Thread; 226 class ThreadList; 227 class ThreadPlan; 228 class ThreadPlanBase; 229 class ThreadPlanRunToAddress; 230 class ThreadPlanStepInstruction; 231 class ThreadPlanStepOut; 232 class ThreadPlanStepOverBreakpoint; 233 class ThreadPlanStepRange; 234 class ThreadPlanStepThrough; 235 class ThreadPlanTracer; 236 class ThreadSpec; 237 class TimeValue; 238 class Type; 239 class TypeAndOrName; 240 class TypeCategoryMap; 241 class TypeImpl; 242 class TypeList; 243 class TypeListImpl; 244 class TypeMemberImpl; 245 class TypeNameSpecifierImpl; 246 class TypePair; 247 class UUID; 248 class Unwind; 249 class UnwindAssembly; 250 class UnwindPlan; 251 class UnwindTable; 252 class VMRange; 253 class Value; 254 class TypeFormatImpl; 255 class ValueList; 256 class ValueObject; 257 class ValueObjectChild; 258 class ValueObjectConstResult; 259 class ValueObjectConstResultChild; 260 class ValueObjectConstResultImpl; 261 class ValueObjectList; 262 class ValueObjectPrinter; 263 class Variable; 264 class VariableList; 265 class Watchpoint; 266 class WatchpointList; 267 class WatchpointOptions; 268 struct LineEntry; 269 270 } // namespace lldb_private 271 272 //---------------------------------------------------------------------- 273 // lldb forward declarations 274 //---------------------------------------------------------------------- 275 namespace lldb { 276 277 typedef std::shared_ptr<lldb_private::ABI> ABISP; 278 typedef std::shared_ptr<lldb_private::Baton> BatonSP; 279 typedef std::shared_ptr<lldb_private::Block> BlockSP; 280 typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP; 281 typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP; 282 typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP; 283 typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP; 284 typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP; 285 typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP; 286 typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP; 287 typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP; 288 typedef std::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP; 289 typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP; 290 typedef std::shared_ptr<lldb_private::Communication> CommunicationSP; 291 typedef std::shared_ptr<lldb_private::Connection> ConnectionSP; 292 typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP; 293 typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP; 294 typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP; 295 typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP; 296 typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP; 297 typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP; 298 typedef std::shared_ptr<lldb_private::DynamicLibrary> DynamicLibrarySP; 299 typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP; 300 typedef std::shared_ptr<lldb_private::Event> EventSP; 301 typedef std::shared_ptr<lldb_private::ExecutionContextRef> ExecutionContextRefSP; 302 typedef std::shared_ptr<lldb_private::File> FileSP; 303 typedef std::shared_ptr<lldb_private::Function> FunctionSP; 304 typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP; 305 typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP; 306 typedef std::shared_ptr<lldb_private::Instruction> InstructionSP; 307 typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP; 308 typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP; 309 typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP; 310 typedef std::shared_ptr<lldb_private::LineTable> LineTableSP; 311 typedef std::shared_ptr<lldb_private::Listener> ListenerSP; 312 typedef std::shared_ptr<lldb_private::LogChannel> LogChannelSP; 313 typedef std::shared_ptr<lldb_private::Module> ModuleSP; 314 typedef std::weak_ptr<lldb_private::Module> ModuleWP; 315 typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP; 316 typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP; 317 typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP; 318 typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP; 319 typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP; 320 typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP; 321 typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP; 322 typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP; 323 typedef std::shared_ptr<lldb_private::OptionValueDictionary> OptionValueDictionarySP; 324 typedef std::shared_ptr<lldb_private::OptionValueFileSpec> OptionValueFileSpecSP; 325 typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> OptionValueFileSpecListSP; 326 typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP; 327 typedef std::shared_ptr<lldb_private::OptionValuePathMappings> OptionValuePathMappingsSP; 328 typedef std::shared_ptr<lldb_private::OptionValueProperties> OptionValuePropertiesSP; 329 typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP; 330 typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP; 331 typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP; 332 typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP; 333 typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP; 334 typedef std::shared_ptr<lldb_private::Platform> PlatformSP; 335 typedef std::shared_ptr<lldb_private::Process> ProcessSP; 336 typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP; 337 typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP; 338 typedef std::weak_ptr<lldb_private::Process> ProcessWP; 339 typedef std::shared_ptr<lldb_private::Property> PropertySP; 340 typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP; 341 typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP; 342 typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP; 343 typedef std::shared_ptr<lldb_private::Queue> QueueSP; 344 typedef std::weak_ptr<lldb_private::Queue> QueueWP; 345 typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP; 346 typedef std::shared_ptr<lldb_private::ScriptInterpreterObject> ScriptInterpreterObjectSP; 347 #ifndef LLDB_DISABLE_PYTHON 348 typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP; 349 #endif // #ifndef LLDB_DISABLE_PYTHON 350 typedef std::shared_ptr<lldb_private::Section> SectionSP; 351 typedef std::weak_ptr<lldb_private::Section> SectionWP; 352 typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP; 353 typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP; 354 typedef std::shared_ptr<lldb_private::Settings> SettingsSP; 355 typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP; 356 typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP; 357 typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP; 358 typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP; 359 typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP; 360 typedef std::shared_ptr<lldb_private::Stream> StreamSP; 361 typedef std::weak_ptr<lldb_private::Stream> StreamWP; 362 typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP; 363 typedef std::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP; 364 typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP; 365 typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP; 366 typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP; 367 typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP; 368 typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP; 369 typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP; 370 typedef std::shared_ptr<lldb_private::Target> TargetSP; 371 typedef std::weak_ptr<lldb_private::Target> TargetWP; 372 typedef std::shared_ptr<lldb_private::Thread> ThreadSP; 373 typedef std::weak_ptr<lldb_private::Thread> ThreadWP; 374 typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP; 375 typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP; 376 typedef std::shared_ptr<lldb_private::Type> TypeSP; 377 typedef std::weak_ptr<lldb_private::Type> TypeWP; 378 typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP; 379 typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP; 380 typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP; 381 typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP; 382 typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP; 383 typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP; 384 #ifndef LLDB_DISABLE_PYTHON 385 typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> ScriptedSyntheticChildrenSP; 386 #endif 387 typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP; 388 typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP; 389 typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP; 390 typedef std::shared_ptr<lldb_private::Value> ValueSP; 391 typedef std::shared_ptr<lldb_private::ValueList> ValueListSP; 392 typedef std::shared_ptr<lldb_private::Variable> VariableSP; 393 typedef std::shared_ptr<lldb_private::VariableList> VariableListSP; 394 typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP; 395 typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP; 396 397 } // namespace lldb 398 399 400 #endif // #if defined(__cplusplus) 401 #endif // LLDB_lldb_forward_h_ 402