diff options
author | hjk <hjk121@nokiamail.com> | 2013-10-22 18:54:53 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2013-10-22 19:10:47 +0200 |
commit | 363c9c87b2acf3e1394574299b135561696d6779 (patch) | |
tree | 53935ac35e9677c3083e2cf5c2568499e55acbb9 /share/qtcreator/debugger/qttypes.py | |
parent | eb944974ac97e709f08a39e9694d2934727568c4 (diff) | |
download | qt-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.py | 3 |
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! |