diff --git a/src/plugins/debugger/gdb/trkgdbadapter.cpp b/src/plugins/debugger/gdb/trkgdbadapter.cpp index ec3be58e405b6d3764ca68f8951d62cd8d919aad..971a602741bb0c29e91ea591606f1994e71d1107 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 a45084bb8cddd881ff8133cbe83595f8551d7046..e40944a66cff3f7c23647ad8816b33d1513bd7e1 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 6f1b280eb85b4d23e1eaca53655ea314ac14a2f8..3bc2ed8de73def510fbf84279c1f344d65f9dfe0 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;