diff options
author | Tamas Berghammer <tberghammer@google.com> | 2016-02-26 14:21:23 +0000 |
---|---|---|
committer | Tamas Berghammer <tberghammer@google.com> | 2016-02-26 14:21:23 +0000 |
commit | 87a9769e9b2106a2b5c94b70ed9fa3671a0f8b73 (patch) | |
tree | 7efe5a19551ee8f19eee4caab98fea3218e38285 /lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h | |
parent | 5b42c7aa25b826747318824340ff229a60670b42 (diff) | |
download | bcm5719-llvm-87a9769e9b2106a2b5c94b70ed9fa3671a0f8b73.tar.gz bcm5719-llvm-87a9769e9b2106a2b5c94b70ed9fa3671a0f8b73.zip |
Add a set of new plugins to handle Java debugging
The purpose of these plugins is to make LLDB capable of debugging java
code JIT-ed by the android runtime.
Differential revision: http://reviews.llvm.org/D17616
llvm-svn: 262015
Diffstat (limited to 'lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h')
-rw-r--r-- | lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h b/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h new file mode 100644 index 00000000000..83ed35dbb59 --- /dev/null +++ b/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h @@ -0,0 +1,90 @@ +//===-- JavaLanguageRuntime.h -----------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_JavaLanguageRuntime_h_ +#define liblldb_JavaLanguageRuntime_h_ + +// C Includes +// C++ Includes +#include <vector> +// Other libraries and framework includes +// Project includes +#include "lldb/Core/PluginInterface.h" +#include "lldb/Target/LanguageRuntime.h" +#include "lldb/lldb-private.h" + +namespace lldb_private +{ + +class JavaLanguageRuntime : public LanguageRuntime +{ +public: + static void + Initialize(); + + static void + Terminate(); + + static lldb_private::LanguageRuntime * + CreateInstance(Process *process, lldb::LanguageType language); + + static lldb_private::ConstString + GetPluginNameStatic(); + + lldb_private::ConstString + GetPluginName() override; + + uint32_t + GetPluginVersion() override; + + lldb::LanguageType + GetLanguageType() const override + { + return lldb::eLanguageTypeJava; + } + + bool + GetObjectDescription(Stream &str, ValueObject &object) override + { + return false; + } + + bool + GetObjectDescription(Stream &str, Value &value, ExecutionContextScope *exe_scope) override + { + return false; + } + + lldb::BreakpointResolverSP + CreateExceptionResolver(Breakpoint *bkpt, bool catch_bp, bool throw_bp) override + { + return nullptr; + } + + TypeAndOrName + FixUpDynamicType(const TypeAndOrName &type_and_or_name, ValueObject &static_value) override; + + bool + CouldHaveDynamicValue(ValueObject &in_value) override; + + bool + GetDynamicTypeAndAddress(ValueObject &in_value, lldb::DynamicValueType use_dynamic, + TypeAndOrName &class_type_or_name, Address &address, + Value::ValueType &value_type) override; + +protected: + JavaLanguageRuntime(Process *process); + +private: + DISALLOW_COPY_AND_ASSIGN(JavaLanguageRuntime); +}; + +} // namespace lldb_private + +#endif // liblldb_JavaLanguageRuntime_h_ |