replay: allow runstate shutdown->running when replaying trace
authorNicholas Piggin <npiggin@gmail.com>
Tue, 13 Aug 2024 20:23:20 +0000 (21:23 +0100)
committerAlex Bennée <alex.bennee@linaro.org>
Fri, 16 Aug 2024 13:04:19 +0000 (14:04 +0100)
commit9dbab31d9eb710b433f93e9e35962fbfd29f4c3f
tree6e67a45ed855a8c8a256dbcaeffeda1ff77d5005
parent4926b6e6444ffcfcea6f60b855debca88bf9db2e
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>
include/sysemu/runstate.h
replay/replay.c
system/runstate.c