LanguageRuntime.h revision 29756d452be39535ded2cff50d9db4df46fe6400
1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//===-- LanguageRuntime.h ---------------------------------------------------*- C++ -*-===// 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// The LLVM Compiler Infrastructure 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// License. See LICENSE.TXT for details. 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)//===----------------------------------------------------------------------===// 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#ifndef liblldb_LanguageRuntime_h_ 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#define liblldb_LanguageRuntime_h_ 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// C Includes 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// C++ Includes 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Other libraries and framework includes 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Project includes 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "lldb/lldb-include.h" 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "lldb/Core/PluginInterface.h" 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "lldb/lldb-private.h" 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "lldb/Core/ValueObject.h" 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "lldb/Core/Value.h" 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "lldb/Target/ExecutionContextScope.h" 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace lldb_private { 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)class LanguageRuntime : 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public PluginInterface 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles){ 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)public: 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ~LanguageRuntime(); 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) static LanguageRuntime* 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FindPlugin (Process *process, lldb::LanguageType language); 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual lldb::LanguageType 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) GetLanguageType () const = 0; 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) GetObjectDescription (Stream &str, ValueObject &object, ExecutionContextScope *exe_scope) = 0; 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) GetObjectDescription (Stream &str, Value &value, ExecutionContextScope *exe_scope) = 0; 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual lldb::ValueObjectSP 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) GetDynamicValue (lldb::ValueObjectSP in_value, ExecutionContextScope *exe_scope) = 0; 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SetExceptionBreakpoints () 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) { 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual void 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ClearExceptionBreakpoints () 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) { 56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual bool 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ExceptionBreakpointsExplainStop (lldb::StopInfoSP stop_reason) 60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) { 61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return false; 62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)protected: 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) //------------------------------------------------------------------ 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Classes that inherit from LanguageRuntime can see and modify these 66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) //------------------------------------------------------------------ 67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LanguageRuntime(Process *process); 68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) Process *m_process; 69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)private: 70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN (LanguageRuntime); 71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} // namespace lldb_private 74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 75cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#endif // liblldb_LanguageRuntime_h_ 76cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)