summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/plugins/debugger/gdb/trkgdbadapter.cpp2
-rw-r--r--src/shared/trk/trkutils.cpp7
-rw-r--r--src/shared/trk/trkutils.h2
3 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp
index ec3be58e40..971a602741 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 a45084bb8c..e40944a66c 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 6f1b280eb8..3bc2ed8de7 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;