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//---------------------------------------------------------------------- 20namespace lldb_private { 21 22class ABI; 23class Address; 24class AddressImpl; 25class AddressRange; 26class AddressResolver; 27class ArchSpec; 28class Args; 29class ASTResultSynthesizer; 30class Baton; 31class Block; 32class Breakpoint; 33class BreakpointID; 34class BreakpointIDList; 35class BreakpointList; 36class BreakpointLocation; 37class BreakpointLocationCollection; 38class BreakpointLocationList; 39class BreakpointOptions; 40class BreakpointResolver; 41class BreakpointSite; 42class BreakpointSiteList; 43class BroadcastEventSpec; 44class Broadcaster; 45class BroadcasterManager; 46class CPPLanguageRuntime; 47class ClangASTContext; 48class ClangASTImporter; 49class ClangASTMetadata; 50class ClangASTSource; 51class ClangASTType; 52class ClangNamespaceDecl; 53class ClangExpression; 54class ClangExpressionDeclMap; 55class ClangExpressionParser; 56class ClangExpressionVariable; 57class ClangExpressionVariableList; 58class ClangExpressionVariableList; 59class ClangExpressionVariables; 60class ClangFunction; 61class ClangPersistentVariables; 62class ClangUserExpression; 63class ClangUtilityFunction; 64class CommandInterpreter; 65class CommandObject; 66class CommandReturnObject; 67class Communication; 68class CompileUnit; 69class Condition; 70class Connection; 71class ConnectionFileDescriptor; 72class ConstString; 73class CXXSyntheticChildren; 74class DWARFCallFrameInfo; 75class DWARFExpression; 76class DataBuffer; 77class DataEncoder; 78class DataExtractor; 79class Debugger; 80class Declaration; 81class Disassembler; 82class DynamicLibrary; 83class DynamicLoader; 84class EmulateInstruction; 85class Error; 86class EvaluateExpressionOptions; 87class Event; 88class EventData; 89class ExecutionContext; 90class ExecutionContextRef; 91class ExecutionContextRefLocker; 92class ExecutionContextScope; 93class FileSpec; 94class FileSpecList; 95class Flags; 96class TypeCategoryImpl; 97class FormatManager; 98class FuncUnwinders; 99class Function; 100class FunctionInfo; 101class InlineFunctionInfo; 102class InputReader; 103class Instruction; 104class InstructionList; 105class IRExecutionUnit; 106class LanguageRuntime; 107class LineTable; 108class Listener; 109class Log; 110class LogChannel; 111class Mangled; 112class Materializer; 113class Module; 114class ModuleList; 115class ModuleSpec; 116class ModuleSpecList; 117class Mutex; 118struct NameSearchContext; 119class ObjCLanguageRuntime; 120class ObjectContainer; 121class OptionGroup; 122class OptionGroupPlatform; 123class ObjectFile; 124class OperatingSystem; 125class Options; 126class OptionValue; 127class OptionValueArch; 128class OptionValueArgs; 129class OptionValueArray; 130class OptionValueBoolean; 131class OptionValueDictionary; 132class OptionValueEnumeration; 133class OptionValueFileSpec; 134class OptionValueFileSpecList; 135class OptionValueFormat; 136class OptionValuePathMappings; 137class OptionValueProperties; 138class OptionValueRegex; 139class OptionValueSInt64; 140class OptionValueString; 141class OptionValueUInt64; 142class OptionValueUUID; 143class NamedOption; 144class PathMappingList; 145class Platform; 146class Process; 147class ProcessAttachInfo; 148class ProcessModID; 149class ProcessInfo; 150class ProcessInstanceInfo; 151class ProcessInstanceInfoList; 152class ProcessInstanceInfoMatch; 153class ProcessLaunchInfo; 154class Property; 155struct PropertyDefinition; 156class PythonArray; 157class PythonDictionary; 158class PythonInteger; 159class PythonObject; 160class PythonString; 161class RegisterContext; 162class RegisterLocation; 163class RegisterLocationList; 164class RegisterValue; 165class RegularExpression; 166class Scalar; 167class ScriptInterpreter; 168class ScriptInterpreterLocker; 169class ScriptInterpreterObject; 170#ifndef LLDB_DISABLE_PYTHON 171class ScriptInterpreterPython; 172struct ScriptSummaryFormat; 173#endif 174class SearchFilter; 175class Section; 176class SectionImpl; 177class SectionList; 178class Settings; 179class SourceManager; 180class SourceManagerImpl; 181class StackFrame; 182class StackFrameImpl; 183class StackFrameList; 184class StackID; 185class StopInfo; 186class Stoppoint; 187class StoppointCallbackContext; 188class StoppointLocation; 189class Stream; 190template <unsigned N> class StreamBuffer; 191class StreamFile; 192class StreamString; 193class StringList; 194struct StringSummaryFormat; 195class TypeSummaryImpl; 196class Symbol; 197class SymbolContext; 198class SymbolContextList; 199class SymbolContextScope; 200class SymbolContextSpecifier; 201class SymbolFile; 202class SymbolFileType; 203class SymbolVendor; 204class Symtab; 205class SyntheticChildren; 206class SyntheticChildrenFrontEnd; 207class TypeFilterImpl; 208#ifndef LLDB_DISABLE_PYTHON 209class ScriptedSyntheticChildren; 210#endif 211class Target; 212class TargetList; 213class Thread; 214class ThreadList; 215class ThreadPlan; 216class ThreadPlanBase; 217class ThreadPlanRunToAddress; 218class ThreadPlanStepInstruction; 219class ThreadPlanStepOut; 220class ThreadPlanStepOverBreakpoint; 221class ThreadPlanStepRange; 222class ThreadPlanStepThrough; 223class ThreadPlanTracer; 224class ThreadSpec; 225class TimeValue; 226class Type; 227class TypeCategoryMap; 228class TypeImpl; 229class TypeAndOrName; 230class TypeList; 231class TypeListImpl; 232class TypeMemberImpl; 233class TypeNameSpecifierImpl; 234class UUID; 235class Unwind; 236class UnwindAssembly; 237class UnwindPlan; 238class UnwindTable; 239class VMRange; 240class Value; 241class TypeFormatImpl; 242class ValueList; 243class ValueObject; 244class ValueObjectChild; 245class ValueObjectConstResult; 246class ValueObjectConstResultChild; 247class ValueObjectConstResultImpl; 248class ValueObjectList; 249class Variable; 250class VariableList; 251class Watchpoint; 252class WatchpointList; 253class WatchpointOptions; 254struct LineEntry; 255 256} // namespace lldb_private 257 258//---------------------------------------------------------------------- 259// lldb forward declarations 260//---------------------------------------------------------------------- 261namespace 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