summaryrefslogtreecommitdiff
path: root/share/qtcreator/debugger/qttypes.py
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2013-10-22 18:54:53 +0200
committerhjk <hjk121@nokiamail.com>2013-10-22 19:10:47 +0200
commit363c9c87b2acf3e1394574299b135561696d6779 (patch)
tree53935ac35e9677c3083e2cf5c2568499e55acbb9 /share/qtcreator/debugger/qttypes.py
parenteb944974ac97e709f08a39e9694d2934727568c4 (diff)
downloadqt-creator-363c9c87b2acf3e1394574299b135561696d6779.tar.gz
Debugger: Work around strange GDB behavior with overload resolution
Contrary to the documention, using the default (i.e. 'on') it seems to _require_ xplicit casting of function pointers: (gdb) p &Myns::QMetaType::typeName -> $1 = (const char *(*)(int)) 0xb7cf73b0 <Myns::QMetaType::typeName(int)> (gdb) p Myns::QMetaType::typeName(1024) -> 31^error,msg="Couldn't find method Myns::QMetaType::typeName" But we can work around on the dumper side. So let's use the default from now on. Change-Id: I3e2a87df797c6abab6183b4c121b843e5035cd47 Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'share/qtcreator/debugger/qttypes.py')
-rw-r--r--share/qtcreator/debugger/qttypes.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py
index 1546ee5ef2..2a0067deb6 100644
--- a/share/qtcreator/debugger/qttypes.py
+++ b/share/qtcreator/debugger/qttypes.py
@@ -1850,7 +1850,8 @@ def qdump__QVariant(d, value):
# User types.
d_ptr = value["d"]
typeCode = int(d_ptr["type"])
- type = str(d.parseAndEvaluate("QMetaType::typeName(%d)" % typeCode))
+ exp = "((const char *(*)(int))%sQMetaType::typeName)(%d)" % (d.ns, typeCode)
+ type = str(d.parseAndEvaluate(exp))
type = type[type.find('"') + 1 : type.rfind('"')]
type = type.replace("Q", d.ns + "Q") # HACK!
type = type.replace("uint", "unsigned int") # HACK!