summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/LanguageRuntime/Java
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2018-11-05 19:34:02 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2018-11-05 19:34:02 +0000
commit0b8c5c9e1330af8e25989e54f3dd50d6404d3ef7 (patch)
tree7f4b7956a5572b2f5826a23d480632053abd1608 /lldb/source/Plugins/LanguageRuntime/Java
parent77198bc79b54267f2ce981c3a6c9c0d6384cac01 (diff)
downloadbcm5719-llvm-0b8c5c9e1330af8e25989e54f3dd50d6404d3ef7.tar.gz
bcm5719-llvm-0b8c5c9e1330af8e25989e54f3dd50d6404d3ef7.zip
Remove Java debugger plugin
In January Davide sent an e-mail to the mailing list to suggest removing unmaintained language plugins such as Go and Java. The plan was to have some cool down period to allow users to speak up, however after that the plugins were never actually removed. This patch removes the Java debugger plugin. The plugin can be added again in the future if it is mature enough both in terms of testing and maintenance commitment. Discussion on the mailing list: http://lists.llvm.org/pipermail/lldb-dev/2018-January/013171.html Differential revision: https://reviews.llvm.org/D54059 llvm-svn: 346158
Diffstat (limited to 'lldb/source/Plugins/LanguageRuntime/Java')
-rw-r--r--lldb/source/Plugins/LanguageRuntime/Java/CMakeLists.txt10
-rw-r--r--lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.cpp157
-rw-r--r--lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h78
3 files changed, 0 insertions, 245 deletions
diff --git a/lldb/source/Plugins/LanguageRuntime/Java/CMakeLists.txt b/lldb/source/Plugins/LanguageRuntime/Java/CMakeLists.txt
deleted file mode 100644
index ec87718752e..00000000000
--- a/lldb/source/Plugins/LanguageRuntime/Java/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-add_lldb_library(lldbPluginLanguageRuntimeJava PLUGIN
- JavaLanguageRuntime.cpp
-
- LINK_LIBS
- lldbCore
- lldbSymbol
- lldbTarget
- LINK_COMPONENTS
- Support
- )
diff --git a/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.cpp b/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.cpp
deleted file mode 100644
index 36c30a99ff8..00000000000
--- a/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-//===-- JavaLanguageRuntime.cpp ---------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "JavaLanguageRuntime.h"
-
-#include "lldb/Core/PluginManager.h"
-#include "lldb/Symbol/JavaASTContext.h"
-#include "lldb/Symbol/Symbol.h"
-#include "lldb/Symbol/SymbolContext.h"
-#include "lldb/Symbol/SymbolFile.h"
-#include "lldb/Symbol/Type.h"
-#include "lldb/Symbol/TypeList.h"
-#include "lldb/Target/SectionLoadList.h"
-#include "lldb/Target/Target.h"
-#include "llvm/ADT/StringRef.h"
-
-using namespace lldb;
-using namespace lldb_private;
-
-JavaLanguageRuntime::JavaLanguageRuntime(Process *process)
- : LanguageRuntime(process) {}
-
-LanguageRuntime *
-JavaLanguageRuntime::CreateInstance(Process *process,
- lldb::LanguageType language) {
- if (language == eLanguageTypeJava)
- return new JavaLanguageRuntime(process);
- return nullptr;
-}
-
-void JavaLanguageRuntime::Initialize() {
- PluginManager::RegisterPlugin(GetPluginNameStatic(), "Java language runtime",
- CreateInstance);
-}
-
-void JavaLanguageRuntime::Terminate() {
- PluginManager::UnregisterPlugin(CreateInstance);
-}
-
-lldb_private::ConstString JavaLanguageRuntime::GetPluginNameStatic() {
- static ConstString g_name("java");
- return g_name;
-}
-
-lldb_private::ConstString JavaLanguageRuntime::GetPluginName() {
- return GetPluginNameStatic();
-}
-
-uint32_t JavaLanguageRuntime::GetPluginVersion() { return 1; }
-
-bool JavaLanguageRuntime::CouldHaveDynamicValue(ValueObject &in_value) {
- return true;
-}
-
-static ConstString GetDynamicTypeId(ExecutionContext *exe_ctx, Target *target,
- ValueObject &in_value) {
- SymbolContext sc;
- TypeList class_types;
- llvm::DenseSet<SymbolFile *> searched_symbol_files;
- size_t num_matches = target->GetImages().FindTypes(
- sc, ConstString("Object"),
- true, // name_is_fully_qualified
- UINT32_MAX, searched_symbol_files, class_types);
- for (size_t i = 0; i < num_matches; ++i) {
- TypeSP type_sp = class_types.GetTypeAtIndex(i);
- CompilerType compiler_type = type_sp->GetFullCompilerType();
-
- if (compiler_type.GetMinimumLanguage() != eLanguageTypeJava ||
- compiler_type.GetTypeName() != ConstString("java::lang::Object"))
- continue;
-
- if (compiler_type.GetCompleteType() && compiler_type.IsCompleteType()) {
- uint64_t type_id = JavaASTContext::CalculateDynamicTypeId(
- exe_ctx, compiler_type, in_value);
- if (type_id != UINT64_MAX) {
- char id[32];
- snprintf(id, sizeof(id), "0x%" PRIX64, type_id);
- return ConstString(id);
- }
- }
- }
- return ConstString();
-}
-
-bool JavaLanguageRuntime::GetDynamicTypeAndAddress(
- ValueObject &in_value, lldb::DynamicValueType use_dynamic,
- TypeAndOrName &class_type_or_name, Address &dynamic_address,
- Value::ValueType &value_type) {
- class_type_or_name.Clear();
-
- // null references don't have a dynamic type
- if (in_value.IsNilReference())
- return false;
-
- ExecutionContext exe_ctx(in_value.GetExecutionContextRef());
- Target *target = exe_ctx.GetTargetPtr();
- if (!target)
- return false;
-
- ConstString linkage_name;
- CompilerType in_type = in_value.GetCompilerType();
- if (in_type.IsPossibleDynamicType(nullptr, false, false))
- linkage_name = GetDynamicTypeId(&exe_ctx, target, in_value);
- else
- linkage_name = JavaASTContext::GetLinkageName(in_type);
-
- if (!linkage_name)
- return false;
-
- class_type_or_name.SetName(in_type.GetNonReferenceType().GetTypeName());
-
- SymbolContext sc;
- TypeList class_types;
- llvm::DenseSet<SymbolFile *> searched_symbol_files;
- size_t num_matches = target->GetImages().FindTypes(
- sc, linkage_name,
- true, // name_is_fully_qualified
- UINT32_MAX, searched_symbol_files, class_types);
-
- for (size_t i = 0; i < num_matches; ++i) {
- TypeSP type_sp = class_types.GetTypeAtIndex(i);
- CompilerType compiler_type = type_sp->GetFullCompilerType();
-
- if (compiler_type.GetMinimumLanguage() != eLanguageTypeJava)
- continue;
-
- if (compiler_type.GetCompleteType() && compiler_type.IsCompleteType()) {
- class_type_or_name.SetTypeSP(type_sp);
-
- Value &value = in_value.GetValue();
- value_type = value.GetValueType();
- dynamic_address.SetRawAddress(value.GetScalar().ULongLong(0));
- return true;
- }
- }
- return false;
-}
-
-TypeAndOrName
-JavaLanguageRuntime::FixUpDynamicType(const TypeAndOrName &type_and_or_name,
- ValueObject &static_value) {
- CompilerType static_type(static_value.GetCompilerType());
-
- TypeAndOrName ret(type_and_or_name);
- if (type_and_or_name.HasType()) {
- CompilerType orig_type = type_and_or_name.GetCompilerType();
- if (static_type.IsReferenceType())
- ret.SetCompilerType(orig_type.GetLValueReferenceType());
- }
- return ret;
-}
diff --git a/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h b/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h
deleted file mode 100644
index 6eeb4041572..00000000000
--- a/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h
+++ /dev/null
@@ -1,78 +0,0 @@
-//===-- 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_
OpenPOWER on IntegriCloud