From 0e6da6450866758c2b8a0bca7ecc5b43f4ade268 Mon Sep 17 00:00:00 2001 From: Nerixyz Date: Fri, 11 Jul 2025 11:51:51 +0200 Subject: [PATCH 1/2] [LLDB] Use non synthetic value for MSVC smart ptr check --- lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp index 4a51879863f17..b5a85ab5deb8b 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp @@ -15,7 +15,8 @@ using namespace lldb; bool lldb_private::formatters::IsMsvcStlSmartPointer(ValueObject &valobj) { - return valobj.GetChildMemberWithName("_Ptr") != nullptr; + ValueObjectSP valobj_sp = valobj.GetNonSyntheticValue(); + return valobj_sp->GetChildMemberWithName("_Ptr") != nullptr; } bool lldb_private::formatters::MsvcStlSmartPointerSummaryProvider( From 7bf41353db8fc3d1d02df602ca20a30edf53b860 Mon Sep 17 00:00:00 2001 From: nerix Date: Fri, 11 Jul 2025 12:32:41 +0200 Subject: [PATCH 2/2] fix: check if non-synthetic exists Co-authored-by: Michael Buch --- .../Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp index b5a85ab5deb8b..b1aecc4b6611a 100644 --- a/lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp +++ b/lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp @@ -15,8 +15,10 @@ using namespace lldb; bool lldb_private::formatters::IsMsvcStlSmartPointer(ValueObject &valobj) { - ValueObjectSP valobj_sp = valobj.GetNonSyntheticValue(); - return valobj_sp->GetChildMemberWithName("_Ptr") != nullptr; + if (auto valobj_sp = valobj.GetNonSyntheticValue()) + return valobj_sp->GetChildMemberWithName("_Ptr") != nullptr; + + return false; } bool lldb_private::formatters::MsvcStlSmartPointerSummaryProvider(