diff options
author | hjk <[email protected]> | 2011-09-02 09:34:25 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2011-09-02 09:35:36 +0200 |
commit | 8c4d35c1443795dad88feca3a64b49d50dfe8d3a (patch) | |
tree | 33f8914bab15cf657c7337d0fb2cfa3fe40bb450 /src/plugins/debugger/disassemblerlines.cpp | |
parent | ed842542a5ca6a2ff700c70996856210ab666eef (diff) |
debugger: fix optical glitch for first instruction in disassembled function
Change-Id: I956e4b7b8afee843e1a282a0b8488fa9465faf06
Reviewed-on: http://codereview.qt.nokia.com/4117
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/debugger/disassemblerlines.cpp')
-rw-r--r-- | src/plugins/debugger/disassemblerlines.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/src/plugins/debugger/disassemblerlines.cpp b/src/plugins/debugger/disassemblerlines.cpp index 4beee54169e..81289913a3f 100644 --- a/src/plugins/debugger/disassemblerlines.cpp +++ b/src/plugins/debugger/disassemblerlines.cpp @@ -45,7 +45,7 @@ void DisassemblerLine::fromString(const QString &unparsed) { int pos = -1; for (int i = 0; i != unparsed.size(); ++i) { - uint c = unparsed.at(i).unicode(); + const uint c = unparsed.at(i).unicode(); if (c == ' ' || c == ':' || c == '\t') { pos = i; break; @@ -66,8 +66,9 @@ void DisassemblerLine::fromString(const QString &unparsed) addr.chop(1); if (addr.startsWith(QLatin1String("0x"))) addr.remove(0, 2); - address = addr.toULongLong(0, 16); - if (address) + bool ok = false; + address = addr.toULongLong(&ok, 16); + if (ok) data = unparsed.mid(pos + 1); else data = unparsed; @@ -112,7 +113,7 @@ void DisassemblerLines::appendLine(const DisassemblerLine &dl) m_rowCache[dl.address] = m_data.size(); } -// Append source line: Cache current file +// Append source line: Cache current file. struct SourceFileCache { QString fileName; @@ -126,7 +127,7 @@ void DisassemblerLines::appendSourceLine(const QString &fileName, uint lineNumbe if (fileName.isEmpty() || lineNumber == 0) return; - lineNumber--; // fix 1..n range. + lineNumber--; // Fix 1..n range. SourceFileCache *cache = sourceFileCache(); if (fileName != cache->fileName) { cache->fileName = fileName; @@ -135,8 +136,8 @@ void DisassemblerLines::appendSourceLine(const QString &fileName, uint lineNumbe if (file.open(QIODevice::ReadOnly)) { QTextStream ts(&file); cache->lines = ts.readAll().split(QLatin1Char('\n')); - } // open - } // different file + } + } if (lineNumber >= uint(cache->lines.size())) return; DisassemblerLine dl; @@ -177,7 +178,6 @@ void DisassemblerLines::appendUnparsed(const QString &unparsed) m_data.append(dl); m_lastFunction = function; } - //line.replace(pos1, pos2 - pos1, ""); } DisassemblerLine dl; dl.address = line.left(pos1 - 1).toULongLong(0, 0); @@ -200,9 +200,8 @@ QString DisassemblerLine::toString() const QString str; if (isAssembler()) { if (address) - str += _("0x%1 ").arg(address, 0, 16); - if (offset) - str += _("<+0x%1> ").arg(offset, 4, 16, QLatin1Char('0')); + str += _("0x%1 <+0x%1> ").arg(offset, 4, 16, QLatin1Char('0')) + .arg(address, 0, 16); str += _(" "); str += data; } else if (isCode()) { |