From 29ecf16ed33377abf3cad23ae56899ed7f05db39 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 25 Aug 2020 21:52:59 +0300 Subject: [PATCH] Dumpers: Fix string+allocator dumper for old GCC versions Older versions of GCC headers don't have _M_string_length. Tested against GCC 4.4.4. Change-Id: Ib3a025edeb26afce7fd54acfb6e965e64200f024 Reviewed-by: Christian Stenger Reviewed-by: hjk --- share/qtcreator/debugger/stdtypes.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/debugger/stdtypes.py b/share/qtcreator/debugger/stdtypes.py index d8ce961ac0a..bf2f95fcf2e 100644 --- a/share/qtcreator/debugger/stdtypes.py +++ b/share/qtcreator/debugger/stdtypes.py @@ -695,13 +695,15 @@ def qdumpHelper_std__string(d, value, charType, format): # GCC 9, QTCREATORBUG-22753 try: data = value["_M_dataplus"]["_M_p"].pointer() + except: + data = value.extractPointer() + try: size = int(value["_M_string_length"]) d.putCharArrayHelper(data, size, charType, format) return except: pass - data = value.extractPointer() # We can't lookup the std::string::_Rep type without crashing LLDB, # so hard-code assumption on member position # struct { size_type _M_length, size_type _M_capacity, int _M_refcount; }