diff options
| author | Enrico Granata <egranata@apple.com> | 2016-08-31 21:46:37 +0000 |
|---|---|---|
| committer | Enrico Granata <egranata@apple.com> | 2016-08-31 21:46:37 +0000 |
| commit | 1b54baef15607b1c521feb3380688f46d59e3ee5 (patch) | |
| tree | d5f3e063d173e967db34731ea1f91f81117fbd4e /lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp | |
| parent | 9b6d4cf9bddb9ec54b3d6ec70f14d58def8363e3 (diff) | |
| download | llvm-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.cpp | 23 |
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; +} |
