From df82d67900ed3e76c392affa038f76246e04744a Mon Sep 17 00:00:00 2001 From: Friedemann Kleint <Friedemann.Kleint@nokia.com> Date: Thu, 11 Feb 2010 11:58:15 +0100 Subject: [PATCH] CDB: Fix compilation --- src/plugins/debugger/cdb/cdbassembler.cpp | 26 ++++++++++----------- src/plugins/debugger/cdb/cdbassembler.h | 11 ++++----- src/plugins/debugger/cdb/cdbdebugengine.cpp | 5 ++-- 3 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/plugins/debugger/cdb/cdbassembler.cpp b/src/plugins/debugger/cdb/cdbassembler.cpp index 93ffd0d34c3..6728e4272e9 100644 --- a/src/plugins/debugger/cdb/cdbassembler.cpp +++ b/src/plugins/debugger/cdb/cdbassembler.cpp @@ -61,31 +61,29 @@ static inline void formatAddress(QTextStream &str, QString hexAddressS, int fiel namespace Debugger { namespace Internal { -bool getRegisters(CIDebugControl *ctl, - CIDebugRegisters *ireg, - QList<Register> *registers, - QString *errorMessage, int base) +Registers getRegisters(CIDebugControl *ctl, + CIDebugRegisters *ireg, + QString *errorMessage, int base) { - registers->clear(); + ULONG count; HRESULT hr = ireg->GetNumberRegisters(&count); if (FAILED(hr)) { *errorMessage= CdbCore::msgComFailed("GetNumberRegisters", hr); - return false; + return Registers(); } if (!count) - return true; + return Registers(); + Registers registers(count); // Retrieve names char buf[MAX_PATH]; for (ULONG r = 0; r < count; r++) { hr = ireg->GetDescription(r, buf, MAX_PATH - 1, 0, 0); if (FAILED(hr)) { *errorMessage= CdbCore::msgComFailed("GetDescription", hr); - return false; + return Registers(); } - Register reg; - reg.name = QByteArray(buf); - registers->push_back(reg); + registers[r].name = QByteArray(buf); } // get values QVector<DEBUG_VALUE> values(count); @@ -94,13 +92,13 @@ bool getRegisters(CIDebugControl *ctl, hr = ireg->GetValues(count, 0, 0, valuesPtr); if (FAILED(hr)) { *errorMessage= CdbCore::msgComFailed("GetValues", hr); - return false; + return Registers(); } if (base < 2) base = 10; for (ULONG r = 0; r < count; r++) - (*registers)[r].value = CdbCore::debugValueToString(values.at(r), 0, base, ctl); - return true; + registers[r].value = CdbCore::debugValueToString(values.at(r), 0, base, ctl); + return registers; } // Output parser for disassembler lines. diff --git a/src/plugins/debugger/cdb/cdbassembler.h b/src/plugins/debugger/cdb/cdbassembler.h index a6ae15f098b..039bb084396 100644 --- a/src/plugins/debugger/cdb/cdbassembler.h +++ b/src/plugins/debugger/cdb/cdbassembler.h @@ -34,6 +34,7 @@ #include <QtCore/QString> #include "cdbcom.h" +#include "registerhandler.h" QT_BEGIN_NAMESPACE class QTextStream; @@ -47,13 +48,11 @@ namespace Debugger { namespace Internal { // Utilities related to assembler code. -class Register; -bool getRegisters(CIDebugControl *ctl, - CIDebugRegisters *ireg, - QList<Register> *registers, - QString *errorMessage, - int base = 10 /* 16 for hex, etc */); +Registers getRegisters(CIDebugControl *ctl, + CIDebugRegisters *ireg, + QString *errorMessage, + int base = 10 /* 16 for hex, etc */); bool dissassemble(CdbCore::CoreEngine *engine, ULONG64 offset, diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp index f844a2379b3..eb0299d9648 100644 --- a/src/plugins/debugger/cdb/cdbdebugengine.cpp +++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp @@ -1192,9 +1192,10 @@ void CdbDebugEngine::reloadRegisters() const int intBase = 10; if (debugCDB) qDebug() << Q_FUNC_INFO << intBase; - QList<Register> registers; + QString errorMessage; - if (!getRegisters(m_d->interfaces().debugControl, m_d->interfaces().debugRegisters, ®isters, &errorMessage, intBase)) + const Registers registers = getRegisters(m_d->interfaces().debugControl, m_d->interfaces().debugRegisters, &errorMessage, intBase); + if (registers.isEmpty() && !errorMessage.isEmpty()) warning(msgFunctionFailed("reloadRegisters" , errorMessage)); manager()->registerHandler()->setRegisters(registers); } -- GitLab