about summary refs log tree commit diff
path: root/src/etc
diff options
context:
space:
mode:
authorVladimir Makayev <vmakaev@fb.com>2024-04-28 14:02:32 -0700
committerVladimir Makayev <vmakaev@fb.com>2024-05-11 12:11:55 -0700
commit330ce83a8d968bb9880d7fc45f2c4b6fa5cfb53f (patch)
treea1265641834bcc941fd5748f461b190156a35d27 /src/etc
parent100b123a0d12c888705d58a40431b640364ee320 (diff)
downloadrust-330ce83a8d968bb9880d7fc45f2c4b6fa5cfb53f.tar.gz
rust-330ce83a8d968bb9880d7fc45f2c4b6fa5cfb53f.zip
lldb-formatters: Use StdSliceSyntheticProvider for &str
Diffstat (limited to 'src/etc')
-rw-r--r--src/etc/lldb_lookup.py2
-rw-r--r--src/etc/lldb_providers.py3
2 files changed, 4 insertions, 1 deletions
diff --git a/src/etc/lldb_lookup.py b/src/etc/lldb_lookup.py
index db3afb00369..abbd802dcdd 100644
--- a/src/etc/lldb_lookup.py
+++ b/src/etc/lldb_lookup.py
@@ -92,7 +92,7 @@ def synthetic_lookup(valobj, dict):
         return StdVecSyntheticProvider(valobj, dict)
     if rust_type == RustType.STD_VEC_DEQUE:
         return StdVecDequeSyntheticProvider(valobj, dict)
-    if rust_type == RustType.STD_SLICE:
+    if rust_type == RustType.STD_SLICE or rust_type == RustType.STD_STR:
         return StdSliceSyntheticProvider(valobj, dict)
 
     if rust_type == RustType.STD_HASH_MAP:
diff --git a/src/etc/lldb_providers.py b/src/etc/lldb_providers.py
index a87fd6078b8..c6330117380 100644
--- a/src/etc/lldb_providers.py
+++ b/src/etc/lldb_providers.py
@@ -159,6 +159,9 @@ def StdStrSummaryProvider(valobj, dict):
     # logger = Logger.Logger()
     # logger >> "[StdStrSummaryProvider] for " + str(valobj.GetName())
 
+    # the code below assumes non-synthetic value, this makes sure the assumption holds
+    valobj = valobj.GetNonSyntheticValue()
+
     length = valobj.GetChildMemberWithName("length").GetValueAsUnsigned()
     if length == 0:
         return '""'