From 5e61e0aa730d825ac0b422192708fb10b5eb6859 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 14 Dec 2018 09:29:10 +0100 Subject: [PATCH] Debugger: Fix target type parsing for array types Task-number: QTCREATORBUG-20639 Task-number: QTCREATORBUG-21677 Change-Id: I233ad175f9f4d1b7859e4a066505880eb975f49b Reviewed-by: hjk Reviewed-by: Christian Stenger --- src/libs/qtcreatorcdbext/pytype.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libs/qtcreatorcdbext/pytype.cpp b/src/libs/qtcreatorcdbext/pytype.cpp index bd08c4b789f..b85b518f6b7 100644 --- a/src/libs/qtcreatorcdbext/pytype.cpp +++ b/src/libs/qtcreatorcdbext/pytype.cpp @@ -329,8 +329,15 @@ std::string PyType::targetName() const const std::string &typeName = name(); if (isPointerType(typeName)) return stripPointerType(typeName); - if (isArrayType(typeName)) - return typeName.substr(0, typeName.find_last_of('[')); + if (isArrayType(typeName)) { + const auto openArrayPos = typeName.find_first_of('['); + if (openArrayPos == std::string::npos) + return typeName; + const auto closeArrayPos = typeName.find_first_of(']', openArrayPos); + if (closeArrayPos == std::string::npos) + return typeName; + return typeName.substr(0, openArrayPos) + typeName.substr(closeArrayPos + 1); + } return typeName; }