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