[Lldb-commits] [PATCH] D84272: Add checks for ValueObjectSP in Cocoa summary providers
Shafik Yaghmour via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Tue Jul 21 15:21:18 PDT 2020
shafik created this revision.
shafik added a reviewer: jingham.
We saw a crash recently that looks related to we had good `ValueObjectSP` for some Cocoa summary providers. This adds checks before we use them when calling `NSStringSummaryProvider`.
https://reviews.llvm.org/D84272
Files:
lldb/source/Plugins/Language/ObjC/Cocoa.cpp
Index: lldb/source/Plugins/Language/ObjC/Cocoa.cpp
===================================================================
--- lldb/source/Plugins/Language/ObjC/Cocoa.cpp
+++ lldb/source/Plugins/Language/ObjC/Cocoa.cpp
@@ -72,6 +72,9 @@
valobj.GetCompilerType().GetBasicTypeFromAST(lldb::eBasicTypeObjCID),
true));
+ if (!text || text->GetValueAsUnsigned(0) == 0)
+ return false;
+
StreamString summary_stream;
bool was_nsstring_ok =
NSStringSummaryProvider(*text, summary_stream, options);
@@ -117,6 +120,10 @@
uint64_t offset = ptr_size;
ValueObjectSP text(valobj.GetSyntheticChildAtOffset(
offset, valobj.GetCompilerType(), true));
+
+ if (!text || text->GetValueAsUnsigned(0) == 0)
+ return false;
+
StreamString summary_stream;
bool was_nsstring_ok =
NSStringSummaryProvider(*text, summary_stream, options);
@@ -162,6 +169,10 @@
uint64_t offset = ptr_size;
ValueObjectSP text(valobj.GetSyntheticChildAtOffset(
offset, valobj.GetCompilerType(), true));
+
+ if (!text || text->GetValueAsUnsigned(0) == 0)
+ return false;
+
StreamString summary_stream;
bool was_nsstring_ok =
NSStringSummaryProvider(*text, summary_stream, options);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D84272.279641.patch
Type: text/x-patch
Size: 1270 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200721/1a35c845/attachment-0001.bin>
More information about the lldb-commits
mailing list