summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <qtc-committer@nokia.com>2010-01-18 16:43:20 +0100
committerhjk <qtc-committer@nokia.com>2010-01-21 17:19:08 +0100
commite8c15eab33262790da3ef88e7ddbfc1bbca6f711 (patch)
tree9892412eeaa5e5059c8de1063f0f3a9d4d623719
parent4030706c04a802fddb3927016bc45f4f83b532eb (diff)
downloadqt-creator-e8c15eab33262790da3ef88e7ddbfc1bbca6f711.tar.gz
debugger: 'replace' the adapter memory cache with gdb's own.
This works better with larger gdb cache lines. See #define LINE_SIZE_POWER 8 in gdb/dcache.c:105.
-rw-r--r--src/plugins/debugger/gdb/trkgdbadapter.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp
index ab61406390..ea676fb86d 100644
--- a/src/plugins/debugger/gdb/trkgdbadapter.cpp
+++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp
@@ -211,8 +211,9 @@ TrkGdbAdapter::TrkGdbAdapter(GdbEngine *engine, const TrkOptionsPtr &options) :
m_gdbAckMode(true),
m_verbose(0)
{
- m_bufferedMemoryRead = false;
m_bufferedMemoryRead = true;
+ // Disable buffering if gdb's dcache is used.
+ m_bufferedMemoryRead = false;
m_gdbServer = 0;
m_gdbConnection = 0;
@@ -1498,8 +1499,6 @@ void TrkGdbAdapter::reportReadMemoryBuffered(const TrkResult &result)
void TrkGdbAdapter::handleStepInto(const TrkResult &result)
{
- debugMessage(_("RESET SNAPSHOT"));
- m_snapshot.reset();
if (result.errorCode()) {
logMessage("ERROR: " + result.errorString() + " in handleStepInto");
@@ -1541,8 +1540,6 @@ void TrkGdbAdapter::handleStepInto2(const TrkResult &result)
void TrkGdbAdapter::handleStepOver(const TrkResult &result)
{
- debugMessage(_("RESET SNAPSHOT"));
- m_snapshot.reset();
if (result.errorCode()) {
logMessage("ERROR: " + result.errorString() + "in handleStepOver");
// Try fallback with Step Into
@@ -1775,6 +1772,12 @@ void TrkGdbAdapter::handleCreateProcess(const TrkResult &result)
// + QByteArray::number(m_session.codeseg));
m_engine->postCommand("symbol-file \"" + symbolFile + "\"");
}
+ m_engine->postCommand("set trust-readonly-sections"); // No difference?
+ m_engine->postCommand("set displaced-stepping on"); // No difference?
+ m_engine->postCommand("mem 0x00400000 0x00800000 cache");
+ m_engine->postCommand("mem 0x78000000 0x88000000 cache ro");
+ // FIXME: replace with stack-cache for newer gdb?
+ m_engine->postCommand("set remotecache on"); // "info dcache" to check
m_engine->postCommand("target remote " + gdbServerName().toLatin1(),
CB(handleTargetRemote));
}