From 1803ee2f91697ccf5761252c3731cf43eb01cdf2 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 29 Sep 2009 09:32:40 +0200 Subject: [PATCH] debugger: reset memory cache after stepping It's better when one wants up-to-date data... --- src/plugins/debugger/gdb/trkgdbadapter.cpp | 2 ++ src/shared/trk/trkutils.cpp | 7 +++++++ src/shared/trk/trkutils.h | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp index ec3be58e405..971a602741b 100644 --- a/src/plugins/debugger/gdb/trkgdbadapter.cpp +++ b/src/plugins/debugger/gdb/trkgdbadapter.cpp @@ -1200,6 +1200,7 @@ void TrkGdbAdapter::handleReadMemoryUnbuffered(const TrkResult &result) void TrkGdbAdapter::handleStepInto(const TrkResult &result) { + m_snapshot.reset(); if (result.errorCode()) { logMessage("ERROR: " + result.errorString() + " in handleStepInto"); // Try fallback with Step Over @@ -1225,6 +1226,7 @@ void TrkGdbAdapter::handleStepInto2(const TrkResult &result) void TrkGdbAdapter::handleStepOver(const TrkResult &result) { + m_snapshot.reset(); if (result.errorCode()) { logMessage("ERROR: " + result.errorString() + "in handleStepOver"); // Try fallback with Step Into diff --git a/src/shared/trk/trkutils.cpp b/src/shared/trk/trkutils.cpp index a45084bb8cd..e40944a66cf 100644 --- a/src/shared/trk/trkutils.cpp +++ b/src/shared/trk/trkutils.cpp @@ -362,5 +362,12 @@ QString TrkResult::errorString() const return errorMessage(data.at(0)); } +void Snapshot::reset() +{ + memory.clear(); + for (int i = 0; i < RegisterCount; ++i) + registers[i] = 0; +} + } // namespace trk diff --git a/src/shared/trk/trkutils.h b/src/shared/trk/trkutils.h index 6f1b280eb85..3bc2ed8de73 100644 --- a/src/shared/trk/trkutils.h +++ b/src/shared/trk/trkutils.h @@ -153,6 +153,8 @@ struct Session struct Snapshot { + void reset(); + uint registers[RegisterCount]; typedef QHash<uint, QByteArray> Memory; Memory memory; -- GitLab