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