summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/tools/lldb/source/Plugins/Language/Java
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Plugins/Language/Java')
-rw-r--r--contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp281
-rw-r--r--contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.h19
-rw-r--r--contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.cpp114
-rw-r--r--contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.h38
4 files changed, 204 insertions, 248 deletions
diff --git a/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp b/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp
index 29e6ad0..286651a 100644
--- a/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp
+++ b/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.cpp
@@ -20,167 +20,148 @@ using namespace lldb;
using namespace lldb_private;
using namespace lldb_private::formatters;
-namespace
-{
+namespace {
-class JavaArraySyntheticFrontEnd : public SyntheticChildrenFrontEnd
-{
+class JavaArraySyntheticFrontEnd : public SyntheticChildrenFrontEnd {
public:
- JavaArraySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp) :
- SyntheticChildrenFrontEnd(*valobj_sp)
- {
- if (valobj_sp)
- Update();
- }
-
- size_t
- CalculateNumChildren() override
- {
- ValueObjectSP valobj = GetDereferencedValueObject();
- if (!valobj)
- return 0;
-
- CompilerType type = valobj->GetCompilerType();
- uint32_t size = JavaASTContext::CalculateArraySize(type, *valobj);
- if (size == UINT32_MAX)
- return 0;
- return size;
- }
-
- lldb::ValueObjectSP
- GetChildAtIndex(size_t idx) override
- {
- ValueObjectSP valobj = GetDereferencedValueObject();
- if (!valobj)
- return nullptr;
-
- ProcessSP process_sp = valobj->GetProcessSP();
- if (!process_sp)
- return nullptr;
-
- CompilerType type = valobj->GetCompilerType();
- CompilerType element_type = type.GetArrayElementType();
- lldb::addr_t address = valobj->GetAddressOf() + JavaASTContext::CalculateArrayElementOffset(type, idx);
-
- Error error;
- size_t byte_size = element_type.GetByteSize(nullptr);
- DataBufferSP buffer_sp(new DataBufferHeap(byte_size, 0));
- size_t bytes_read = process_sp->ReadMemory(address, buffer_sp->GetBytes(), byte_size, error);
- if (error.Fail() || byte_size != bytes_read)
- return nullptr;
-
- StreamString name;
- name.Printf("[%" PRIu64 "]", (uint64_t)idx);
- DataExtractor data(buffer_sp, process_sp->GetByteOrder(), process_sp->GetAddressByteSize());
- return CreateValueObjectFromData(name.GetData(), data, valobj->GetExecutionContextRef(),
- element_type);
- }
-
- bool
- Update() override
- {
- return false;
- }
-
- bool
- MightHaveChildren() override
- {
- return true;
- }
-
- size_t
- GetIndexOfChildWithName(const ConstString &name) override
- {
- return ExtractIndexFromString(name.GetCString());
- }
+ JavaArraySyntheticFrontEnd(lldb::ValueObjectSP valobj_sp)
+ : SyntheticChildrenFrontEnd(*valobj_sp) {
+ if (valobj_sp)
+ Update();
+ }
+
+ size_t CalculateNumChildren() override {
+ ValueObjectSP valobj = GetDereferencedValueObject();
+ if (!valobj)
+ return 0;
+
+ CompilerType type = valobj->GetCompilerType();
+ uint32_t size = JavaASTContext::CalculateArraySize(type, *valobj);
+ if (size == UINT32_MAX)
+ return 0;
+ return size;
+ }
+
+ lldb::ValueObjectSP GetChildAtIndex(size_t idx) override {
+ ValueObjectSP valobj = GetDereferencedValueObject();
+ if (!valobj)
+ return nullptr;
+
+ ProcessSP process_sp = valobj->GetProcessSP();
+ if (!process_sp)
+ return nullptr;
+
+ CompilerType type = valobj->GetCompilerType();
+ CompilerType element_type = type.GetArrayElementType();
+ lldb::addr_t address =
+ valobj->GetAddressOf() +
+ JavaASTContext::CalculateArrayElementOffset(type, idx);
+
+ Error error;
+ size_t byte_size = element_type.GetByteSize(nullptr);
+ DataBufferSP buffer_sp(new DataBufferHeap(byte_size, 0));
+ size_t bytes_read = process_sp->ReadMemory(address, buffer_sp->GetBytes(),
+ byte_size, error);
+ if (error.Fail() || byte_size != bytes_read)
+ return nullptr;
+
+ StreamString name;
+ name.Printf("[%" PRIu64 "]", (uint64_t)idx);
+ DataExtractor data(buffer_sp, process_sp->GetByteOrder(),
+ process_sp->GetAddressByteSize());
+ return CreateValueObjectFromData(
+ name.GetString(), data, valobj->GetExecutionContextRef(), element_type);
+ }
+
+ bool Update() override { return false; }
+
+ bool MightHaveChildren() override { return true; }
+
+ size_t GetIndexOfChildWithName(const ConstString &name) override {
+ return ExtractIndexFromString(name.GetCString());
+ }
private:
- ValueObjectSP
- GetDereferencedValueObject()
- {
- if (!m_backend.IsPointerOrReferenceType())
- return m_backend.GetSP();
-
- Error error;
- return m_backend.Dereference(error);
- }
+ ValueObjectSP GetDereferencedValueObject() {
+ if (!m_backend.IsPointerOrReferenceType())
+ return m_backend.GetSP();
+
+ Error error;
+ return m_backend.Dereference(error);
+ }
};
} // end of anonymous namespace
-bool
-lldb_private::formatters::JavaStringSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &opts)
-{
- if (valobj.IsPointerOrReferenceType())
- {
- Error error;
- ValueObjectSP deref = valobj.Dereference(error);
- if (error.Fail())
- return false;
- return JavaStringSummaryProvider(*deref, stream, opts);
- }
-
- ProcessSP process_sp = valobj.GetProcessSP();
- if (!process_sp)
- return false;
-
- ConstString data_name("value");
- ConstString length_name("count");
-
- ValueObjectSP length_sp = valobj.GetChildMemberWithName(length_name, true);
- ValueObjectSP data_sp = valobj.GetChildMemberWithName(data_name, true);
- if (!data_sp || !length_sp)
- return false;
-
- bool success = false;
- uint64_t length = length_sp->GetValueAsUnsigned(0, &success);
- if (!success)
- return false;
-
- if (length == 0)
- {
- stream.Printf("\"\"");
- return true;
- }
- lldb::addr_t valobj_addr = data_sp->GetAddressOf();
-
- StringPrinter::ReadStringAndDumpToStreamOptions options(valobj);
- options.SetLocation(valobj_addr);
- options.SetProcessSP(process_sp);
- options.SetStream(&stream);
- options.SetSourceSize(length);
- options.SetNeedsZeroTermination(false);
- options.SetLanguage(eLanguageTypeJava);
-
- if (StringPrinter::ReadStringAndDumpToStream<StringPrinter::StringElementType::UTF16>(options))
- return true;
-
- stream.Printf("Summary Unavailable");
+bool lldb_private::formatters::JavaStringSummaryProvider(
+ ValueObject &valobj, Stream &stream, const TypeSummaryOptions &opts) {
+ if (valobj.IsPointerOrReferenceType()) {
+ Error error;
+ ValueObjectSP deref = valobj.Dereference(error);
+ if (error.Fail())
+ return false;
+ return JavaStringSummaryProvider(*deref, stream, opts);
+ }
+
+ ProcessSP process_sp = valobj.GetProcessSP();
+ if (!process_sp)
+ return false;
+
+ ConstString data_name("value");
+ ConstString length_name("count");
+
+ ValueObjectSP length_sp = valobj.GetChildMemberWithName(length_name, true);
+ ValueObjectSP data_sp = valobj.GetChildMemberWithName(data_name, true);
+ if (!data_sp || !length_sp)
+ return false;
+
+ bool success = false;
+ uint64_t length = length_sp->GetValueAsUnsigned(0, &success);
+ if (!success)
+ return false;
+
+ if (length == 0) {
+ stream.Printf("\"\"");
+ return true;
+ }
+ lldb::addr_t valobj_addr = data_sp->GetAddressOf();
+
+ StringPrinter::ReadStringAndDumpToStreamOptions options(valobj);
+ options.SetLocation(valobj_addr);
+ options.SetProcessSP(process_sp);
+ options.SetStream(&stream);
+ options.SetSourceSize(length);
+ options.SetNeedsZeroTermination(false);
+ options.SetLanguage(eLanguageTypeJava);
+
+ if (StringPrinter::ReadStringAndDumpToStream<
+ StringPrinter::StringElementType::UTF16>(options))
return true;
+
+ stream.Printf("Summary Unavailable");
+ return true;
}
-bool
-lldb_private::formatters::JavaArraySummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options)
-{
- if (valobj.IsPointerOrReferenceType())
- {
- Error error;
- ValueObjectSP deref = valobj.Dereference(error);
- if (error.Fail())
- return false;
- return JavaArraySummaryProvider(*deref, stream, options);
- }
-
- CompilerType type = valobj.GetCompilerType();
- uint32_t size = JavaASTContext::CalculateArraySize(type, valobj);
- if (size == UINT32_MAX)
- return false;
- stream.Printf("[%u]{...}", size);
- return true;
+bool lldb_private::formatters::JavaArraySummaryProvider(
+ ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options) {
+ if (valobj.IsPointerOrReferenceType()) {
+ Error error;
+ ValueObjectSP deref = valobj.Dereference(error);
+ if (error.Fail())
+ return false;
+ return JavaArraySummaryProvider(*deref, stream, options);
+ }
+
+ CompilerType type = valobj.GetCompilerType();
+ uint32_t size = JavaASTContext::CalculateArraySize(type, valobj);
+ if (size == UINT32_MAX)
+ return false;
+ stream.Printf("[%u]{...}", size);
+ return true;
}
-SyntheticChildrenFrontEnd*
-lldb_private::formatters::JavaArraySyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp)
-{
- return valobj_sp ? new JavaArraySyntheticFrontEnd(valobj_sp) : nullptr;
+SyntheticChildrenFrontEnd *
+lldb_private::formatters::JavaArraySyntheticFrontEndCreator(
+ CXXSyntheticChildren *, lldb::ValueObjectSP valobj_sp) {
+ return valobj_sp ? new JavaArraySyntheticFrontEnd(valobj_sp) : nullptr;
}
diff --git a/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.h b/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.h
index f9588c5..d198342 100644
--- a/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.h
+++ b/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaFormatterFunctions.h
@@ -16,19 +16,18 @@
// Project includes
#include "lldb/lldb-forward.h"
-namespace lldb_private
-{
-namespace formatters
-{
+namespace lldb_private {
+namespace formatters {
-bool
-JavaStringSummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options);
+bool JavaStringSummaryProvider(ValueObject &valobj, Stream &stream,
+ const TypeSummaryOptions &options);
-bool
-JavaArraySummaryProvider(ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options);
+bool JavaArraySummaryProvider(ValueObject &valobj, Stream &stream,
+ const TypeSummaryOptions &options);
-SyntheticChildrenFrontEnd*
-JavaArraySyntheticFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp);
+SyntheticChildrenFrontEnd *
+JavaArraySyntheticFrontEndCreator(CXXSyntheticChildren *,
+ lldb::ValueObjectSP valobj_sp);
} // namespace formatters
} // namespace lldb_private
diff --git a/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.cpp b/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.cpp
index a4f883f..f58b51f 100644
--- a/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.cpp
+++ b/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.cpp
@@ -29,84 +29,72 @@ using namespace lldb;
using namespace lldb_private;
using namespace lldb_private::formatters;
-void
-JavaLanguage::Initialize()
-{
- PluginManager::RegisterPlugin(GetPluginNameStatic(), "Java Language", CreateInstance);
+void JavaLanguage::Initialize() {
+ PluginManager::RegisterPlugin(GetPluginNameStatic(), "Java Language",
+ CreateInstance);
}
-void
-JavaLanguage::Terminate()
-{
- PluginManager::UnregisterPlugin(CreateInstance);
+void JavaLanguage::Terminate() {
+ PluginManager::UnregisterPlugin(CreateInstance);
}
-lldb_private::ConstString
-JavaLanguage::GetPluginNameStatic()
-{
- static ConstString g_name("Java");
- return g_name;
+lldb_private::ConstString JavaLanguage::GetPluginNameStatic() {
+ static ConstString g_name("Java");
+ return g_name;
}
-lldb_private::ConstString
-JavaLanguage::GetPluginName()
-{
- return GetPluginNameStatic();
+lldb_private::ConstString JavaLanguage::GetPluginName() {
+ return GetPluginNameStatic();
}
-uint32_t
-JavaLanguage::GetPluginVersion()
-{
- return 1;
-}
+uint32_t JavaLanguage::GetPluginVersion() { return 1; }
-Language *
-JavaLanguage::CreateInstance(lldb::LanguageType language)
-{
- if (language == eLanguageTypeJava)
- return new JavaLanguage();
- return nullptr;
+Language *JavaLanguage::CreateInstance(lldb::LanguageType language) {
+ if (language == eLanguageTypeJava)
+ return new JavaLanguage();
+ return nullptr;
}
-bool
-JavaLanguage::IsNilReference(ValueObject &valobj)
-{
- if (!valobj.GetCompilerType().IsReferenceType())
- return false;
+bool JavaLanguage::IsNilReference(ValueObject &valobj) {
+ if (!valobj.GetCompilerType().IsReferenceType())
+ return false;
- // If we failed to read the value then it is not a nil reference.
- return valobj.GetValueAsUnsigned(UINT64_MAX) == 0;
+ // If we failed to read the value then it is not a nil reference.
+ return valobj.GetValueAsUnsigned(UINT64_MAX) == 0;
}
-lldb::TypeCategoryImplSP
-JavaLanguage::GetFormatters()
-{
- static std::once_flag g_initialize;
- static TypeCategoryImplSP g_category;
-
- std::call_once(g_initialize, [this]() -> void {
- DataVisualization::Categories::GetCategory(GetPluginName(), g_category);
- if (g_category)
- {
- const char* array_regexp = "^.*\\[\\]&?$";
-
- lldb::TypeSummaryImplSP string_summary_sp(new CXXFunctionSummaryFormat(
- TypeSummaryImpl::Flags().SetDontShowChildren(true), lldb_private::formatters::JavaStringSummaryProvider,
- "java.lang.String summary provider"));
- g_category->GetTypeSummariesContainer()->Add(ConstString("java::lang::String"), string_summary_sp);
-
- lldb::TypeSummaryImplSP array_summary_sp(new CXXFunctionSummaryFormat(
- TypeSummaryImpl::Flags().SetDontShowChildren(true), lldb_private::formatters::JavaArraySummaryProvider,
- "Java array summary provider"));
- g_category->GetRegexTypeSummariesContainer()->Add(RegularExpressionSP(new RegularExpression(array_regexp)),
- array_summary_sp);
+lldb::TypeCategoryImplSP JavaLanguage::GetFormatters() {
+ static std::once_flag g_initialize;
+ static TypeCategoryImplSP g_category;
+
+ std::call_once(g_initialize, [this]() -> void {
+ DataVisualization::Categories::GetCategory(GetPluginName(), g_category);
+ if (g_category) {
+ llvm::StringRef array_regexp("^.*\\[\\]&?$");
+
+ lldb::TypeSummaryImplSP string_summary_sp(new CXXFunctionSummaryFormat(
+ TypeSummaryImpl::Flags().SetDontShowChildren(true),
+ lldb_private::formatters::JavaStringSummaryProvider,
+ "java.lang.String summary provider"));
+ g_category->GetTypeSummariesContainer()->Add(
+ ConstString("java::lang::String"), string_summary_sp);
+
+ lldb::TypeSummaryImplSP array_summary_sp(new CXXFunctionSummaryFormat(
+ TypeSummaryImpl::Flags().SetDontShowChildren(true),
+ lldb_private::formatters::JavaArraySummaryProvider,
+ "Java array summary provider"));
+ g_category->GetRegexTypeSummariesContainer()->Add(
+ RegularExpressionSP(new RegularExpression(array_regexp)),
+ array_summary_sp);
#ifndef LLDB_DISABLE_PYTHON
- AddCXXSynthetic(g_category, lldb_private::formatters::JavaArraySyntheticFrontEndCreator,
- "Java array synthetic children", ConstString(array_regexp),
- SyntheticChildren::Flags().SetCascades(true), true);
+ AddCXXSynthetic(
+ g_category,
+ lldb_private::formatters::JavaArraySyntheticFrontEndCreator,
+ "Java array synthetic children", ConstString(array_regexp),
+ SyntheticChildren::Flags().SetCascades(true), true);
#endif
- }
- });
- return g_category;
+ }
+ });
+ return g_category;
}
diff --git a/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.h b/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.h
index 164facd..6cf27ab 100644
--- a/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.h
+++ b/contrib/llvm/tools/lldb/source/Plugins/Language/Java/JavaLanguage.h
@@ -22,41 +22,29 @@
#include "lldb/Target/Language.h"
#include "lldb/lldb-private.h"
-namespace lldb_private
-{
+namespace lldb_private {
-class JavaLanguage : public Language
-{
+class JavaLanguage : public Language {
public:
- lldb::LanguageType
- GetLanguageType() const override
- {
- return lldb::eLanguageTypeJava;
- }
+ lldb::LanguageType GetLanguageType() const override {
+ return lldb::eLanguageTypeJava;
+ }
- static void
- Initialize();
+ static void Initialize();
- static void
- Terminate();
+ static void Terminate();
- static lldb_private::Language *
- CreateInstance(lldb::LanguageType language);
+ static lldb_private::Language *CreateInstance(lldb::LanguageType language);
- static lldb_private::ConstString
- GetPluginNameStatic();
+ static lldb_private::ConstString GetPluginNameStatic();
- ConstString
- GetPluginName() override;
+ ConstString GetPluginName() override;
- uint32_t
- GetPluginVersion() override;
+ uint32_t GetPluginVersion() override;
- bool
- IsNilReference(ValueObject &valobj) override;
+ bool IsNilReference(ValueObject &valobj) override;
- lldb::TypeCategoryImplSP
- GetFormatters() override;
+ lldb::TypeCategoryImplSP GetFormatters() override;
};
} // namespace lldb_private
OpenPOWER on IntegriCloud