aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2016-08-31 21:46:37 +0000
committerEnrico Granata <egranata@apple.com>2016-08-31 21:46:37 +0000
commit1b54baef15607b1c521feb3380688f46d59e3ee5 (patch)
treed5f3e063d173e967db34731ea1f91f81117fbd4e /lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
parent9b6d4cf9bddb9ec54b3d6ec70f14d58def8363e3 (diff)
downloadllvm-1b54baef15607b1c521feb3380688f46d59e3ee5.zip
llvm-1b54baef15607b1c521feb3380688f46d59e3ee5.tar.gz
llvm-1b54baef15607b1c521feb3380688f46d59e3ee5.tar.bz2
Add a data formatter for std::function in libcxx
llvm-svn: 280295
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp')
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
index beb89b8..1567fffd 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
@@ -645,3 +645,26 @@ lldb_private::formatters::LibcxxStringSummaryProvider (ValueObject& valobj, Stre
return true;
}
+
+class LibcxxFunctionFrontEnd : public SyntheticValueProviderFrontEnd
+{
+public:
+ LibcxxFunctionFrontEnd (ValueObject &backend) :
+ SyntheticValueProviderFrontEnd(backend)
+ {}
+
+ lldb::ValueObjectSP
+ GetSyntheticValue() override
+ {
+ static ConstString g___f_("__f_");
+ return m_backend.GetChildMemberWithName(g___f_, true);
+ }
+};
+
+SyntheticChildrenFrontEnd*
+lldb_private::formatters::LibcxxFunctionFrontEndCreator (CXXSyntheticChildren*, lldb::ValueObjectSP valobj_sp)
+{
+ if (valobj_sp)
+ return new LibcxxFunctionFrontEnd(*valobj_sp);
+ return nullptr;
+}