From e629899766e77dd26e077ee3b5bd74533fe2cc4a Mon Sep 17 00:00:00 2001 From: hjk <qthjk@ovi.com> Date: Thu, 10 Jan 2013 17:28:51 +0100 Subject: [PATCH] Debugger: always prepend '::' to types when constructing expressions Traditionally, this would have been exactly the wrong thing to do as the colons confused gdb's command line parser. Now that the general C++ awareness has improved, the parser accepts :: but gets confused by name lookups, see http://sourceware.org/bugzilla/show_bug.cgi?id=15008 Change-Id: I01e46643a5179ecef26fcc11eab7bab84c359ec6 Reviewed-by: hjk <qthjk@ovi.com> --- share/qtcreator/dumper/dumper.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/dumper/dumper.py b/share/qtcreator/dumper/dumper.py index ae576bd683d..8b76b7aa658 100644 --- a/share/qtcreator/dumper/dumper.py +++ b/share/qtcreator/dumper/dumper.py @@ -660,9 +660,7 @@ def call(value, func, *args): return call2(value, func, args) def makeValue(type, init): - type = stripClassTag(type) - if type.find(":") >= 0: - type = "'" + type + "'" + type = "::" + stripClassTag(str(type)); # Avoid malloc symbol clash with QVector. gdb.execute("set $d = (%s*)calloc(sizeof(%s), 1)" % (type, type)) gdb.execute("set *$d = {%s}" % init) @@ -685,9 +683,7 @@ def makeStdString(init): def makeExpression(value): - type = stripClassTag(str(value.type)) - if type.find(":") >= 0: - type = "'" + type + "'" + type = "::" + stripClassTag(str(value.type)) #warn(" TYPE: %s" % type) #exp = "(*(%s*)(&%s))" % (type, value.address) exp = "(*(%s*)(%s))" % (type, value.address) -- GitLab