From fbdfb3acae0b0f6670ed1dc26cd7c7378087a558 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 1 Mar 2011 17:04:36 +0100 Subject: [PATCH] debugger: display size of bitfields in 'type' column --- src/plugins/debugger/watchdata.cpp | 2 ++ src/plugins/debugger/watchdata.h | 2 ++ src/plugins/debugger/watchhandler.cpp | 5 ++++- src/plugins/debugger/watchutils.cpp | 6 ++++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp index 306136e9b07..795e62b0b92 100644 --- a/src/plugins/debugger/watchdata.cpp +++ b/src/plugins/debugger/watchdata.cpp @@ -144,6 +144,8 @@ WatchData::WatchData() : state(InitialState), editformat(0), address(0), + bitpos(0), + bitsize(0), generation(-1), hasChildren(false), valueEnabled(true), diff --git a/src/plugins/debugger/watchdata.h b/src/plugins/debugger/watchdata.h index 1666fd2cf62..e65b159cd36 100644 --- a/src/plugins/debugger/watchdata.h +++ b/src/plugins/debugger/watchdata.h @@ -128,6 +128,8 @@ public: QByteArray type; // Type for further processing QString displayedType;// Displayed type (optional) quint64 address; // Displayed address + uint bitpos; // Position within bit fields + uint bitsize; // Size in case of bit fields qint32 generation; // When updated? bool hasChildren; bool valueEnabled; // Value will be enabled or not diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index aa39a2741b7..2b895963ed6 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -285,9 +285,12 @@ static QString removeInitialNamespace(QString str, const QByteArray &ns) QString WatchModel::displayType(const WatchData &data) const { - return data.displayedType.isEmpty() + QString base = data.displayedType.isEmpty() ? niceTypeHelper(data.type) : data.displayedType; + if (data.bitsize) + base += QString(":%1").arg(data.bitsize); + return base; } static int formatToIntegerBase(int format) diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp index 5a5ba5fb6db..7cd2a79ef56 100644 --- a/src/plugins/debugger/watchutils.cpp +++ b/src/plugins/debugger/watchutils.cpp @@ -1399,6 +1399,12 @@ void parseWatchData(const QSet<QByteArray> &expandedINames, mi = item.findChild("typeformats"); if (mi.isValid()) data.typeFormats = QString::fromUtf8(mi.data()); + mi = item.findChild("bitpos"); + if (mi.isValid()) + data.bitpos = mi.data().toInt(); + mi = item.findChild("bitsize"); + if (mi.isValid()) + data.bitsize = mi.data().toInt(); setWatchDataValue(data, item); setWatchDataAddress(data, item.findChild("addr")); -- GitLab