From 330ce83a8d968bb9880d7fc45f2c4b6fa5cfb53f Mon Sep 17 00:00:00 2001 From: Vladimir Makayev Date: Sun, 28 Apr 2024 14:02:32 -0700 Subject: lldb-formatters: Use StdSliceSyntheticProvider for &str --- src/etc/lldb_lookup.py | 2 +- src/etc/lldb_providers.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src') 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 '""' -- cgit 1.4.1-3-g733a5