diff options
| author | hjk <qtc-committer@nokia.com> | 2010-02-05 13:48:10 +0100 |
|---|---|---|
| committer | hjk <qtc-committer@nokia.com> | 2010-02-05 15:23:44 +0100 |
| commit | 735b3489d402c6ed33d33233de6379d8ab000c94 (patch) | |
| tree | 25a643c5104ccaa7fa2876bc8d8a75c65849bc93 /src | |
| parent | 52dcc41021ef75905c65bcf4fd0f6d6349ad0c05 (diff) | |
| download | qt-creator-735b3489d402c6ed33d33233de6379d8ab000c94.tar.gz | |
debugger: fake hardware breakpoints work better with read-only memory
Diffstat (limited to 'src')
| -rw-r--r-- | src/plugins/debugger/gdb/gdbengine.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/debugger/gdb/trkgdbadapter.cpp | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index b74130e61b..697448b453 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -2021,6 +2021,8 @@ void GdbEngine::sendInsertBreakpoint(int index) QByteArray cmd; if (m_isMacGdb) cmd = "-break-insert -l -1 -f "; + else if (m_gdbAdapter->isTrkAdapter()) + cmd = "-break-insert -h -f "; else if (m_gdbVersion >= 60800) // Probably some earlier version would work as well ... cmd = "-break-insert -f "; else diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp index 5025d3a68b..1fbc27a3ee 100644 --- a/src/plugins/debugger/gdb/trkgdbadapter.cpp +++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp @@ -384,8 +384,9 @@ QByteArray TrkGdbAdapter::trkStepRangeMessage(trk::byte option) uint to = m_snapshot.lineToAddress; uint pc = m_snapshot.registers[RegisterPC]; if (from <= pc && pc <= to) { - qDebug() << "STEP IN " << hexxNumber(from) << hexxNumber(to) - << "INSTEAD OF " << hexxNumber(pc); + to = qMax(to - 4, from); + debugMessage("STEP IN " + hexxNumber(from) + " " + hexxNumber(to) + + " INSTEAD OF " + hexxNumber(pc)); } else { from = pc; to = pc; @@ -1852,7 +1853,7 @@ void TrkGdbAdapter::handleCreateProcess(const TrkResult &result) m_engine->postCommand("symbol-file \"" + symbolFile + "\""); } m_engine->postCommand("set breakpoint always-inserted on"); - m_engine->postCommand("set breakpoint auto-hw off"); + m_engine->postCommand("set breakpoint auto-hw on"); m_engine->postCommand("set trust-readonly-sections"); // No difference? m_engine->postCommand("set displaced-stepping on"); // No difference? m_engine->postCommand("set mem inaccessible-by-default"); |
