aboutsummaryrefslogtreecommitdiff
path: root/replay
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2024-08-13 21:23:20 +0100
committerAlex Bennée <alex.bennee@linaro.org>2024-08-16 14:04:19 +0100
commit9dbab31d9eb710b433f93e9e35962fbfd29f4c3f (patch)
tree6e67a45ed855a8c8a256dbcaeffeda1ff77d5005 /replay
parent4926b6e6444ffcfcea6f60b855debca88bf9db2e (diff)
downloadqemu-9dbab31d9eb710b433f93e9e35962fbfd29f4c3f.zip
qemu-9dbab31d9eb710b433f93e9e35962fbfd29f4c3f.tar.gz
qemu-9dbab31d9eb710b433f93e9e35962fbfd29f4c3f.tar.bz2
replay: allow runstate shutdown->running when replaying trace
When replaying a trace, it is possible to go from shutdown to running with a reverse-debugging step. This can be useful if the problem being debugged triggers a reset or shutdown. This can be tested by making a recording of a machine that shuts down, then using -action shutdown=pause when replaying it. Continuing to the end of the trace then reverse-stepping in gdb crashes due to invalid runstate transition. Just permitting the transition seems to be all that's necessary for reverse-debugging to work well in such a state. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Message-Id: <20240813050638.446172-5-npiggin@gmail.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20240813202329.1237572-13-alex.bennee@linaro.org>
Diffstat (limited to 'replay')
-rw-r--r--replay/replay.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/replay/replay.c b/replay/replay.c
index a2c576c..b8564a4 100644
--- a/replay/replay.c
+++ b/replay/replay.c
@@ -385,6 +385,8 @@ static void replay_enable(const char *fname, int mode)
replay_fetch_data_kind();
}
+ runstate_replay_enable();
+
replay_init_events();
}