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