aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2010-08-18 13:51:49 +0200
committerhjk <qtc-committer@nokia.com>2010-08-18 13:53:04 +0200
commit7d8c3d585d3d6036628bde809cc8a76b4100fae1 (patch)
treea4a563ab867b52661ec8fb0434803be7af57b110
parent61ca790047dd7e2316b4abbf2b41136850a8fcbf (diff)
debugger: fix 2.x regression: allow assignment to structure members
(cherry picked from commit 69fb75b627d478796f95518a66353a543d588fe3)
-rw-r--r--src/plugins/debugger/watchhandler.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index b4cfd13f26..a4adf74e50 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -602,8 +602,21 @@ QVariant WatchModel::data(const QModelIndex &idx, int role) const
break;
}
- case ExpressionRole:
- return data.exp;
+ case ExpressionRole: {
+ if (!data.exp.isEmpty())
+ return data.exp;
+ if (!data.addr.isEmpty() && !data.type.isEmpty()) {
+ bool ok;
+ const quint64 addr = data.addr.toULongLong(&ok, 16);
+ if (ok && addr)
+ return QString("*(%1*)%2").arg(data.type).arg(addr);
+ }
+ WatchItem *parent = item->parent;
+ if (parent && !parent->exp.isEmpty())
+ return QString("(%1).%2")
+ .arg(QString::fromLatin1(parent->exp)).arg(data.name);
+ return QVariant();
+ }
case INameRole:
return data.iname;