lldb-forward.h revision 9e6f6a6f394bb570c5f1f9a850ec0befe4a59fef
11b86fe063badb5f28c467ade39be0f4008688947Andreas Huber//===-- lldb-forward.h ------------------------------------------*- C++ -*-===// 21b86fe063badb5f28c467ade39be0f4008688947Andreas Huber// 31b86fe063badb5f28c467ade39be0f4008688947Andreas Huber// The LLVM Compiler Infrastructure 41b86fe063badb5f28c467ade39be0f4008688947Andreas Huber// 51b86fe063badb5f28c467ade39be0f4008688947Andreas Huber// This file is distributed under the University of Illinois Open Source 61b86fe063badb5f28c467ade39be0f4008688947Andreas Huber// License. See LICENSE.TXT for details. 71b86fe063badb5f28c467ade39be0f4008688947Andreas Huber// 81b86fe063badb5f28c467ade39be0f4008688947Andreas Huber//===----------------------------------------------------------------------===// 91b86fe063badb5f28c467ade39be0f4008688947Andreas Huber 101b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#ifndef LLDB_lldb_forward_h_ 111b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define LLDB_lldb_forward_h_ 121b86fe063badb5f28c467ade39be0f4008688947Andreas Huber 131b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#if defined(__cplusplus) 141b86fe063badb5f28c467ade39be0f4008688947Andreas Huber 151b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#include <ciso646> // detect C++ lib 161b86fe063badb5f28c467ade39be0f4008688947Andreas Huber 171b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#ifdef _LIBCPP_VERSION 181b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#include <memory> 191b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define STD_SHARED_PTR(T) std::shared_ptr<T> 201b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define STD_WEAK_PTR(T) std::weak_ptr<T> 211b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define STD_ENABLE_SHARED_FROM_THIS(T) std::enable_shared_from_this<T> 221b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define STD_STATIC_POINTER_CAST(T,V) std::static_pointer_cast<T>(V) 231b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#else 241b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#include <tr1/memory> 251b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define STD_SHARED_PTR(T) std::tr1::shared_ptr<T> 261b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define STD_WEAK_PTR(T) std::tr1::weak_ptr<T> 271b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define STD_ENABLE_SHARED_FROM_THIS(T) std::tr1::enable_shared_from_this<T> 281b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#define STD_STATIC_POINTER_CAST(T,V) std::tr1::static_pointer_cast<T>(V) 291b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#endif 301b86fe063badb5f28c467ade39be0f4008688947Andreas Huber 311b86fe063badb5f28c467ade39be0f4008688947Andreas Huber#include "lldb/Utility/SharingPtr.h" 321b86fe063badb5f28c467ade39be0f4008688947Andreas Huber 331b86fe063badb5f28c467ade39be0f4008688947Andreas Huber//---------------------------------------------------------------------- 341b86fe063badb5f28c467ade39be0f4008688947Andreas Huber// lldb forward declarations 351b86fe063badb5f28c467ade39be0f4008688947Andreas Huber//---------------------------------------------------------------------- 361b86fe063badb5f28c467ade39be0f4008688947Andreas Hubernamespace lldb_private { 371b86fe063badb5f28c467ade39be0f4008688947Andreas Huber 381b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass ABI; 391b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass Address; 401b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass AddressImpl; 411b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass AddressRange; 421b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass AddressResolver; 431b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass ArchSpec; 441b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass Args; 451b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass ASTResultSynthesizer; 461b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass Baton; 471b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass Block; 481b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass Breakpoint; 491b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointID; 501b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointIDList; 511b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointList; 521b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointLocation; 531b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointLocationCollection; 541b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointLocationList; 551b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointOptions; 561b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointResolver; 571b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointSite; 581b86fe063badb5f28c467ade39be0f4008688947Andreas Huberclass BreakpointSiteList; 59class BroadcastEventSpec; 60class Broadcaster; 61class BroadcasterManager; 62class CPPLanguageRuntime; 63class ClangASTContext; 64class ClangASTImporter; 65class ClangASTMetadata; 66class ClangASTSource; 67class ClangASTType; 68class ClangNamespaceDecl; 69class ClangExpression; 70class ClangExpressionDeclMap; 71class ClangExpressionParser; 72class ClangExpressionVariable; 73class ClangExpressionVariableList; 74class ClangExpressionVariableList; 75class ClangExpressionVariables; 76class ClangFunction; 77class ClangPersistentVariables; 78class ClangUserExpression; 79class ClangUtilityFunction; 80class CommandInterpreter; 81class CommandObject; 82class CommandReturnObject; 83class Communication; 84class CompileUnit; 85class Condition; 86class Connection; 87class ConnectionFileDescriptor; 88class ConstString; 89class CXXSyntheticChildren; 90class DWARFCallFrameInfo; 91class DWARFExpression; 92class DataBuffer; 93class DataEncoder; 94class DataExtractor; 95class Debugger; 96class Declaration; 97class Disassembler; 98class DynamicLibrary; 99class DynamicLoader; 100class EmulateInstruction; 101class Error; 102class EvaluateExpressionOptions; 103class Event; 104class EventData; 105class ExecutionContext; 106class ExecutionContextRef; 107class ExecutionContextRefLocker; 108class ExecutionContextScope; 109class FileSpec; 110class FileSpecList; 111class Flags; 112class TypeCategoryImpl; 113class FormatManager; 114class FuncUnwinders; 115class Function; 116class FunctionInfo; 117class InlineFunctionInfo; 118class InputReader; 119class Instruction; 120class InstructionList; 121class IRExecutionUnit; 122class LanguageRuntime; 123class LineTable; 124class Listener; 125class Log; 126class LogChannel; 127class Mangled; 128class Module; 129class ModuleList; 130class ModuleSpec; 131class Mutex; 132struct NameSearchContext; 133class ObjCLanguageRuntime; 134class ObjectContainer; 135class OptionGroup; 136class OptionGroupPlatform; 137class ObjectFile; 138class OperatingSystem; 139class Options; 140class OptionValue; 141class OptionValueArch; 142class OptionValueArgs; 143class OptionValueArray; 144class OptionValueBoolean; 145class OptionValueDictionary; 146class OptionValueEnumeration; 147class OptionValueFileSpec; 148class OptionValueFileSpecList; 149class OptionValueFormat; 150class OptionValuePathMappings; 151class OptionValueProperties; 152class OptionValueRegex; 153class OptionValueSInt64; 154class OptionValueString; 155class OptionValueUInt64; 156class OptionValueUUID; 157class NamedOption; 158class PathMappingList; 159class Platform; 160class Process; 161class ProcessAttachInfo; 162class ProcessModID; 163class ProcessInfo; 164class ProcessInstanceInfo; 165class ProcessInstanceInfoList; 166class ProcessInstanceInfoMatch; 167class ProcessLaunchInfo; 168class Property; 169struct PropertyDefinition; 170class PythonArray; 171class PythonDictionary; 172class PythonInteger; 173class PythonObject; 174class PythonString; 175class RegisterContext; 176class RegisterLocation; 177class RegisterLocationList; 178class RegisterValue; 179class RegularExpression; 180class Scalar; 181class ScriptInterpreter; 182class ScriptInterpreterLocker; 183class ScriptInterpreterObject; 184#ifndef LLDB_DISABLE_PYTHON 185class ScriptInterpreterPython; 186struct ScriptSummaryFormat; 187#endif 188class SearchFilter; 189class Section; 190class SectionImpl; 191class SectionList; 192class Settings; 193class SourceManager; 194class SourceManagerImpl; 195class StackFrame; 196class StackFrameImpl; 197class StackFrameList; 198class StackID; 199class StopInfo; 200class Stoppoint; 201class StoppointCallbackContext; 202class StoppointLocation; 203class Stream; 204template <unsigned N> class StreamBuffer; 205class StreamFile; 206class StreamString; 207class StringList; 208struct StringSummaryFormat; 209class TypeSummaryImpl; 210class Symbol; 211class SymbolContext; 212class SymbolContextList; 213class SymbolContextScope; 214class SymbolContextSpecifier; 215class SymbolFile; 216class SymbolFileType; 217class SymbolVendor; 218class Symtab; 219class SyntheticChildren; 220class SyntheticChildrenFrontEnd; 221class TypeFilterImpl; 222#ifndef LLDB_DISABLE_PYTHON 223class ScriptedSyntheticChildren; 224#endif 225class Target; 226class TargetList; 227class Thread; 228class ThreadList; 229class ThreadPlan; 230class ThreadPlanBase; 231class ThreadPlanRunToAddress; 232class ThreadPlanStepInstruction; 233class ThreadPlanStepOut; 234class ThreadPlanStepOverBreakpoint; 235class ThreadPlanStepRange; 236class ThreadPlanStepThrough; 237class ThreadPlanTracer; 238class ThreadSpec; 239class TimeValue; 240class Type; 241class TypeCategoryMap; 242class TypeImpl; 243class TypeAndOrName; 244class TypeList; 245class TypeListImpl; 246class TypeMemberImpl; 247class TypeNameSpecifierImpl; 248class UUID; 249class Unwind; 250class UnwindAssembly; 251class UnwindPlan; 252class UnwindTable; 253class VMRange; 254class Value; 255class TypeFormatImpl; 256class ValueList; 257class ValueObject; 258class ValueObjectChild; 259class ValueObjectConstResult; 260class ValueObjectConstResultChild; 261class ValueObjectConstResultImpl; 262class ValueObjectList; 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::Function) FunctionSP; 303 typedef STD_SHARED_PTR(lldb_private::FuncUnwinders) FuncUnwindersSP; 304 typedef STD_SHARED_PTR(lldb_private::InlineFunctionInfo) InlineFunctionInfoSP; 305 typedef STD_SHARED_PTR(lldb_private::InputReader) InputReaderSP; 306 typedef STD_SHARED_PTR(lldb_private::Instruction) InstructionSP; 307 typedef STD_SHARED_PTR(lldb_private::LanguageRuntime) LanguageRuntimeSP; 308 typedef STD_SHARED_PTR(lldb_private::LineTable) LineTableSP; 309 typedef STD_SHARED_PTR(lldb_private::Listener) ListenerSP; 310 typedef STD_SHARED_PTR(lldb_private::LogChannel) LogChannelSP; 311 typedef STD_SHARED_PTR(lldb_private::Module) ModuleSP; 312 typedef STD_WEAK_PTR( lldb_private::Module) ModuleWP; 313 typedef STD_SHARED_PTR(lldb_private::ObjectFile) ObjectFileSP; 314 typedef STD_WEAK_PTR( lldb_private::ObjectFile) ObjectFileWP; 315 typedef STD_SHARED_PTR(lldb_private::OptionValue) OptionValueSP; 316 typedef STD_WEAK_PTR( lldb_private::OptionValue) OptionValueWP; 317 typedef STD_SHARED_PTR(lldb_private::OptionValueArch) OptionValueArchSP; 318 typedef STD_SHARED_PTR(lldb_private::OptionValueArgs) OptionValueArgsSP; 319 typedef STD_SHARED_PTR(lldb_private::OptionValueArray) OptionValueArraySP; 320 typedef STD_SHARED_PTR(lldb_private::OptionValueBoolean) OptionValueBooleanSP; 321 typedef STD_SHARED_PTR(lldb_private::OptionValueDictionary) OptionValueDictionarySP; 322 typedef STD_SHARED_PTR(lldb_private::OptionValueFileSpec) OptionValueFileSpecSP; 323 typedef STD_SHARED_PTR(lldb_private::OptionValueFileSpecList) OptionValueFileSpecListSP; 324 typedef STD_SHARED_PTR(lldb_private::OptionValueFormat) OptionValueFormatSP; 325 typedef STD_SHARED_PTR(lldb_private::OptionValuePathMappings) OptionValuePathMappingsSP; 326 typedef STD_SHARED_PTR(lldb_private::OptionValueProperties) OptionValuePropertiesSP; 327 typedef STD_SHARED_PTR(lldb_private::OptionValueRegex) OptionValueRegexSP; 328 typedef STD_SHARED_PTR(lldb_private::OptionValueSInt64) OptionValueSInt64SP; 329 typedef STD_SHARED_PTR(lldb_private::OptionValueString) OptionValueStringSP; 330 typedef STD_SHARED_PTR(lldb_private::OptionValueUInt64) OptionValueUInt64SP; 331 typedef STD_SHARED_PTR(lldb_private::OptionValueUUID) OptionValueUUIDSP; 332 typedef STD_SHARED_PTR(lldb_private::Platform) PlatformSP; 333 typedef STD_SHARED_PTR(lldb_private::Process) ProcessSP; 334 typedef STD_SHARED_PTR(lldb_private::ProcessAttachInfo) ProcessAttachInfoSP; 335 typedef STD_SHARED_PTR(lldb_private::ProcessLaunchInfo) ProcessLaunchInfoSP; 336 typedef STD_WEAK_PTR( lldb_private::Process) ProcessWP; 337 typedef STD_SHARED_PTR(lldb_private::Property) PropertySP; 338 typedef STD_SHARED_PTR(lldb_private::RegisterContext) RegisterContextSP; 339 typedef STD_SHARED_PTR(lldb_private::RegularExpression) RegularExpressionSP; 340 typedef STD_SHARED_PTR(lldb_private::ScriptInterpreterObject) ScriptInterpreterObjectSP; 341#ifndef LLDB_DISABLE_PYTHON 342 typedef STD_SHARED_PTR(lldb_private::ScriptSummaryFormat) ScriptSummaryFormatSP; 343#endif // #ifndef LLDB_DISABLE_PYTHON 344 typedef STD_SHARED_PTR(lldb_private::Section) SectionSP; 345 typedef STD_WEAK_PTR( lldb_private::Section) SectionWP; 346 typedef STD_SHARED_PTR(lldb_private::SearchFilter) SearchFilterSP; 347 typedef STD_SHARED_PTR(lldb_private::Settings) SettingsSP; 348 typedef STD_SHARED_PTR(lldb_private::StackFrame) StackFrameSP; 349 typedef STD_WEAK_PTR( lldb_private::StackFrame) StackFrameWP; 350 typedef STD_SHARED_PTR(lldb_private::StackFrameList) StackFrameListSP; 351 typedef STD_SHARED_PTR(lldb_private::StopInfo) StopInfoSP; 352 typedef STD_SHARED_PTR(lldb_private::StoppointLocation) StoppointLocationSP; 353 typedef STD_SHARED_PTR(lldb_private::Stream) StreamSP; 354 typedef STD_WEAK_PTR (lldb_private::Stream) StreamWP; 355 typedef STD_SHARED_PTR(lldb_private::StringSummaryFormat) StringTypeSummaryImplSP; 356 typedef STD_SHARED_PTR(lldb_private::SymbolFile) SymbolFileSP; 357 typedef STD_SHARED_PTR(lldb_private::SymbolFileType) SymbolFileTypeSP; 358 typedef STD_WEAK_PTR( lldb_private::SymbolFileType) SymbolFileTypeWP; 359 typedef STD_SHARED_PTR(lldb_private::SymbolContextSpecifier) SymbolContextSpecifierSP; 360 typedef STD_SHARED_PTR(lldb_private::SyntheticChildren) SyntheticChildrenSP; 361 typedef STD_SHARED_PTR(lldb_private::SyntheticChildrenFrontEnd) SyntheticChildrenFrontEndSP; 362 typedef STD_SHARED_PTR(lldb_private::Target) TargetSP; 363 typedef STD_WEAK_PTR( lldb_private::Target) TargetWP; 364 typedef STD_SHARED_PTR(lldb_private::Thread) ThreadSP; 365 typedef STD_WEAK_PTR( lldb_private::Thread) ThreadWP; 366 typedef STD_SHARED_PTR(lldb_private::ThreadPlan) ThreadPlanSP; 367 typedef STD_SHARED_PTR(lldb_private::ThreadPlanTracer) ThreadPlanTracerSP; 368 typedef STD_SHARED_PTR(lldb_private::Type) TypeSP; 369 typedef STD_WEAK_PTR( lldb_private::Type) TypeWP; 370 typedef STD_SHARED_PTR(lldb_private::TypeCategoryImpl) TypeCategoryImplSP; 371 typedef STD_SHARED_PTR(lldb_private::TypeImpl) TypeImplSP; 372 typedef STD_SHARED_PTR(lldb_private::TypeFilterImpl) TypeFilterImplSP; 373 typedef STD_SHARED_PTR(lldb_private::TypeFormatImpl) TypeFormatImplSP; 374 typedef STD_SHARED_PTR(lldb_private::TypeNameSpecifierImpl) TypeNameSpecifierImplSP; 375 typedef STD_SHARED_PTR(lldb_private::TypeSummaryImpl) TypeSummaryImplSP; 376#ifndef LLDB_DISABLE_PYTHON 377 typedef STD_SHARED_PTR(lldb_private::ScriptedSyntheticChildren) ScriptedSyntheticChildrenSP; 378#endif 379 typedef STD_SHARED_PTR(lldb_private::UnwindPlan) UnwindPlanSP; 380 typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP; 381 typedef STD_SHARED_PTR(lldb_private::Value) ValueSP; 382 typedef STD_SHARED_PTR(lldb_private::ValueList) ValueListSP; 383 typedef STD_SHARED_PTR(lldb_private::Variable) VariableSP; 384 typedef STD_SHARED_PTR(lldb_private::VariableList) VariableListSP; 385 typedef STD_SHARED_PTR(lldb_private::ValueObjectList) ValueObjectListSP; 386 typedef STD_SHARED_PTR(lldb_private::Watchpoint) WatchpointSP; 387 388} // namespace lldb 389 390 391#endif // #if defined(__cplusplus) 392#endif // LLDB_lldb_forward_h_ 393