aboutsummaryrefslogtreecommitdiff
path: root/llvm/utils/lldbDataFormatters.py
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/utils/lldbDataFormatters.py')
-rw-r--r--llvm/utils/lldbDataFormatters.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/utils/lldbDataFormatters.py b/llvm/utils/lldbDataFormatters.py
index 5e553ca..a3e4ae1 100644
--- a/llvm/utils/lldbDataFormatters.py
+++ b/llvm/utils/lldbDataFormatters.py
@@ -197,6 +197,11 @@ def StringRefSummaryProvider(valobj, internal_dict):
return '""'
data = data_pointer.deref
+ # StringRef may be uninitialized with length exceeding available memory,
+ # potentially causing bad_alloc exceptions. Limit the length to max string summary setting.
+ limit_obj = valobj.target.debugger.GetSetting("target.max-string-summary-length")
+ if limit_obj:
+ length = min(length, limit_obj.GetUnsignedIntegerValue())
# Get a char[N] type, from the underlying char type.
array_type = data.type.GetArrayType(length)
# Cast the char* string data to a char[N] array.