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