lldb-forward.h revision 269024
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 Editline; 86class EmulateInstruction; 87class Error; 88class EvaluateExpressionOptions; 89class Event; 90class EventData; 91class ExecutionContext; 92class ExecutionContextRef; 93class ExecutionContextRefLocker; 94class ExecutionContextScope; 95class File; 96class FileSpec; 97class FileSpecList; 98class Flags; 99class TypeCategoryImpl; 100class FormatManager; 101class FormattersMatchCandidate; 102class FuncUnwinders; 103class Function; 104class FunctionInfo; 105class InlineFunctionInfo; 106class Instruction; 107class InstructionList; 108class IOHandler; 109class IRExecutionUnit; 110class LanguageRuntime; 111class SystemRuntime; 112class LineTable; 113class Listener; 114class Log; 115class LogChannel; 116class Mangled; 117class Materializer; 118class Module; 119class ModuleList; 120class ModuleSpec; 121class ModuleSpecList; 122class Mutex; 123struct NameSearchContext; 124class ObjCLanguageRuntime; 125class ObjectContainer; 126class OptionGroup; 127class OptionGroupOptions; 128class OptionGroupPlatform; 129class ObjectFile; 130class OperatingSystem; 131class Options; 132class OptionValue; 133class OptionValueArch; 134class OptionValueArgs; 135class OptionValueArray; 136class OptionValueBoolean; 137class OptionValueDictionary; 138class OptionValueEnumeration; 139class OptionValueFileSpec; 140class OptionValueFileSpecList; 141class OptionValueFormat; 142class OptionValuePathMappings; 143class OptionValueProperties; 144class OptionValueRegex; 145class OptionValueSInt64; 146class OptionValueString; 147class OptionValueUInt64; 148class OptionValueUUID; 149class NamedOption; 150class PathMappingList; 151class Platform; 152class Process; 153class ProcessAttachInfo; 154class ProcessModID; 155class ProcessInfo; 156class ProcessInstanceInfo; 157class ProcessInstanceInfoList; 158class ProcessInstanceInfoMatch; 159class ProcessLaunchInfo; 160class Property; 161struct PropertyDefinition; 162class PythonArray; 163class PythonDictionary; 164class PythonInteger; 165class PythonObject; 166class PythonString; 167class RegisterCheckpoint; 168class RegisterContext; 169class RegisterLocation; 170class RegisterLocationList; 171class RegisterValue; 172class RegularExpression; 173class Scalar; 174class ScriptInterpreter; 175class ScriptInterpreterLocker; 176class ScriptInterpreterObject; 177#ifndef LLDB_DISABLE_PYTHON 178class ScriptInterpreterPython; 179struct ScriptSummaryFormat; 180#endif 181class SearchFilter; 182class Section; 183class SectionImpl; 184class SectionList; 185class SectionLoadHistory; 186class SectionLoadList; 187class Settings; 188class SourceManager; 189class SourceManagerImpl; 190class StackFrame; 191class StackFrameImpl; 192class StackFrameList; 193class StackID; 194class StopInfo; 195class Stoppoint; 196class StoppointCallbackContext; 197class StoppointLocation; 198class Stream; 199template <unsigned N> class StreamBuffer; 200class StreamFile; 201class StreamString; 202class StringList; 203struct StringSummaryFormat; 204class TypeSummaryImpl; 205class Symbol; 206class SymbolContext; 207class SymbolContextList; 208class SymbolContextScope; 209class SymbolContextSpecifier; 210class SymbolFile; 211class SymbolFileType; 212class SymbolVendor; 213class Symtab; 214class SyntheticChildren; 215class SyntheticChildrenFrontEnd; 216class TypeFilterImpl; 217#ifndef LLDB_DISABLE_PYTHON 218class ScriptedSyntheticChildren; 219#endif 220class Queue; 221class QueueItem; 222class QueueImpl; 223class Target; 224class TargetList; 225class Thread; 226class ThreadList; 227class ThreadPlan; 228class ThreadPlanBase; 229class ThreadPlanRunToAddress; 230class ThreadPlanStepInstruction; 231class ThreadPlanStepOut; 232class ThreadPlanStepOverBreakpoint; 233class ThreadPlanStepRange; 234class ThreadPlanStepThrough; 235class ThreadPlanTracer; 236class ThreadSpec; 237class TimeValue; 238class Type; 239class TypeAndOrName; 240class TypeCategoryMap; 241class TypeImpl; 242class TypeList; 243class TypeListImpl; 244class TypeMemberImpl; 245class TypeNameSpecifierImpl; 246class TypePair; 247class UUID; 248class Unwind; 249class UnwindAssembly; 250class UnwindPlan; 251class UnwindTable; 252class VMRange; 253class Value; 254class TypeFormatImpl; 255class ValueList; 256class ValueObject; 257class ValueObjectChild; 258class ValueObjectConstResult; 259class ValueObjectConstResultChild; 260class ValueObjectConstResultImpl; 261class ValueObjectList; 262class ValueObjectPrinter; 263class Variable; 264class VariableList; 265class Watchpoint; 266class WatchpointList; 267class WatchpointOptions; 268struct LineEntry; 269 270} // namespace lldb_private 271 272//---------------------------------------------------------------------- 273// lldb forward declarations 274//---------------------------------------------------------------------- 275namespace 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