From e8c15eab33262790da3ef88e7ddbfc1bbca6f711 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 18 Jan 2010 16:43:20 +0100 Subject: 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. --- src/plugins/debugger/gdb/trkgdbadapter.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/plugins/debugger/gdb/trkgdbadapter.cpp') 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)); } -- cgit v1.2.1