aboutsummaryrefslogtreecommitdiff
path: root/hmp-commands.hx
diff options
context:
space:
mode:
authorPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>2020-10-03 20:13:26 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2020-10-06 08:34:49 +0200
commite751067179e18178d0f0ab5955b95d59e2a081de (patch)
treea4c504693aa2622de0f0f913766ddd33233e9afd /hmp-commands.hx
parente3b09ad2b6e9b23ebc7c2ba133e8a22e53dec301 (diff)
replay: introduce breakpoint at the specified step
This patch introduces replay_break, replay_delete_break qmp and hmp commands. These commands allow stopping at the specified instruction. It may be useful for debugging when there are some known events that should be investigated. replay_break command has one argument - number of instructions executed since the start of the replay. replay_delete_break removes previously set breakpoint. Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru> Acked-by: Markus Armbruster <armbru@redhat.com> -- v4 changes: - removed useless error_free call Message-Id: <160174520606.12451.7056879546045599378.stgit@pasha-ThinkPad-X280> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hmp-commands.hx')
-rw-r--r--hmp-commands.hx32
1 files changed, 32 insertions, 0 deletions
diff --git a/hmp-commands.hx b/hmp-commands.hx
index 1088d64503..7680d0b380 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1805,6 +1805,38 @@ SRST
ERST
{
+ .name = "replay_break",
+ .args_type = "icount:i",
+ .params = "icount",
+ .help = "set breakpoint at the specified instruction count",
+ .cmd = hmp_replay_break,
+ },
+
+SRST
+``replay_break`` *icount*
+ Set replay breakpoint at instruction count *icount*.
+ Execution stops when the specified instruction is reached.
+ There can be at most one breakpoint. When breakpoint is set, any prior
+ one is removed. The breakpoint may be set only in replay mode and only
+ "in the future", i.e. at instruction counts greater than the current one.
+ The current instruction count can be observed with ``info replay``.
+ERST
+
+ {
+ .name = "replay_delete_break",
+ .args_type = "",
+ .params = "",
+ .help = "remove replay breakpoint",
+ .cmd = hmp_replay_delete_break,
+ },
+
+SRST
+``replay_delete_break``
+ Remove replay breakpoint which was previously set with ``replay_break``.
+ The command is ignored when there are no replay breakpoints.
+ERST
+
+ {
.name = "info",
.args_type = "item:s?",
.params = "[subcommand]",