summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/LanguageRuntime/Java
diff options
context:
space:
mode:
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