diff options
author | hjk <hjk121@nokiamail.com> | 2013-05-24 10:40:45 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2013-05-24 10:43:59 +0200 |
commit | e1db88e1139a4eb7d72cde1218a8ebb06d6ec79c (patch) | |
tree | 633f43cefa7b251d06803c82a477e1477b0a8ed5 /src | |
parent | 276e2bccaa0878d4836c3770e83aeece9b97b88c (diff) | |
download | qt-creator-e1db88e1139a4eb7d72cde1218a8ebb06d6ec79c.tar.gz |
Debugger: Fix passing addresses to read memory with LLDB
We need 64 bit on 64 bit machines.
Change-Id: I7efed5ffdccc5ce0aa13b1e7296137396ca28efe
Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/debugger/lldb/lldbengine.cpp | 28 | ||||
-rw-r--r-- | src/plugins/debugger/lldb/lldbengine.h | 4 |
2 files changed, 25 insertions, 7 deletions
diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 5df12a7cc7..1a2d654af7 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -460,11 +460,10 @@ void LldbEngine::refreshDisassembly(const GdbMi &data) if (!agent.isNull()) { foreach (const GdbMi &line, data["lines"].children()) { DisassemblerLine dl; - QByteArray address = line["address"].data(); - dl.address = address.toULongLong(0, 0); + dl.address = line["address"].toAddress(); dl.data = _(line["inst"].data()); dl.function = _(line["func-name"].data()); - dl.offset = line["offset"].data().toUInt(); + dl.offset = line["offset"].toInt(); result.appendLine(dl); } agent->setContents(result); @@ -474,7 +473,7 @@ void LldbEngine::refreshDisassembly(const GdbMi &data) void LldbEngine::refreshMemory(const GdbMi &data) { int cookie = data["cookie"].toInt(); - qulonglong addr = data["address"].toInt(); + qulonglong addr = data["address"].toAddress(); QPointer<MemoryAgent> agent = m_memoryAgents.key(cookie); if (!agent.isNull()) { QPointer<QObject> token = m_memoryAgentTokens.value(cookie); @@ -1038,16 +1037,31 @@ DebuggerEngine *createLldbEngine(const DebuggerStartParameters &startParameters) // /////////////////////////////////////////////////////////////////////// -const LldbEngine::Command &LldbEngine::Command::arg(const char *name, int value) const +const LldbEngine::Command &LldbEngine::Command::argHelper(const char *name, const QByteArray &data) const { args.append('\''); args.append(name); args.append("':"); - args.append(QByteArray::number(value)); - args.append(','); + args.append(data); + args.append(","); return *this; } +const LldbEngine::Command &LldbEngine::Command::arg(const char *name, int value) const +{ + return argHelper(name, QByteArray::number(value)); +} + +const LldbEngine::Command &LldbEngine::Command::arg(const char *name, qlonglong value) const +{ + return argHelper(name, QByteArray::number(value)); +} + +const LldbEngine::Command &LldbEngine::Command::arg(const char *name, qulonglong value) const +{ + return argHelper(name, QByteArray::number(value)); +} + const LldbEngine::Command &LldbEngine::Command::arg(const char *name, const QString &value) const { return arg(name, value.toUtf8().data()); diff --git a/src/plugins/debugger/lldb/lldbengine.h b/src/plugins/debugger/lldb/lldbengine.h index e8a080f596..71ff668179 100644 --- a/src/plugins/debugger/lldb/lldbengine.h +++ b/src/plugins/debugger/lldb/lldbengine.h @@ -68,6 +68,8 @@ private: Command(const char *f) : function(f) {} const Command &arg(const char *name, int value) const; + const Command &arg(const char *name, qlonglong value) const; + const Command &arg(const char *name, qulonglong value) const; const Command &arg(const char *name, const QString &value) const; const Command &arg(const char *name, const QByteArray &value) const; const Command &arg(const char *name, const char *value) const; @@ -78,6 +80,8 @@ private: QByteArray function; mutable QByteArray args; + private: + const Command &argHelper(const char *name, const QByteArray &value) const; }; // DebuggerEngine implementation |