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