qemu/qapi/replay.json
<<
>>
Prefs
   1# -*- Mode: Python -*-
   2#
   3
   4##
   5# = Record/replay
   6##
   7
   8{ 'include': 'common.json' }
   9
  10##
  11# @ReplayMode:
  12#
  13# Mode of the replay subsystem.
  14#
  15# @none: normal execution mode. Replay or record are not enabled.
  16#
  17# @record: record mode. All non-deterministic data is written into the
  18#          replay log.
  19#
  20# @play: replay mode. Non-deterministic data required for system execution
  21#        is read from the log.
  22#
  23# Since: 2.5
  24##
  25{ 'enum': 'ReplayMode',
  26  'data': [ 'none', 'record', 'play' ] }
  27
  28##
  29# @ReplayInfo:
  30#
  31# Record/replay information.
  32#
  33# @mode: current mode.
  34#
  35# @filename: name of the record/replay log file.
  36#            It is present only in record or replay modes, when the log
  37#            is recorded or replayed.
  38#
  39# @icount: current number of executed instructions.
  40#
  41# Since: 5.2
  42#
  43##
  44{ 'struct': 'ReplayInfo',
  45  'data': { 'mode': 'ReplayMode', '*filename': 'str', 'icount': 'int' } }
  46
  47##
  48# @query-replay:
  49#
  50# Retrieve the record/replay information.
  51# It includes current instruction count which may be used for
  52# @replay-break and @replay-seek commands.
  53#
  54# Returns: record/replay information.
  55#
  56# Since: 5.2
  57#
  58# Example:
  59#
  60# -> { "execute": "query-replay" }
  61# <- { "return": { "mode": "play", "filename": "log.rr", "icount": 220414 } }
  62#
  63##
  64{ 'command': 'query-replay',
  65  'returns': 'ReplayInfo' }
  66
  67##
  68# @replay-break:
  69#
  70# Set replay breakpoint at instruction count @icount.
  71# Execution stops when the specified instruction is reached.
  72# There can be at most one breakpoint. When breakpoint is set, any prior
  73# one is removed.  The breakpoint may be set only in replay mode and only
  74# "in the future", i.e. at instruction counts greater than the current one.
  75# The current instruction count can be observed with @query-replay.
  76#
  77# @icount: instruction count to stop at
  78#
  79# Since: 5.2
  80#
  81# Example:
  82#
  83# -> { "execute": "replay-break", "data": { "icount": 220414 } }
  84#
  85##
  86{ 'command': 'replay-break', 'data': { 'icount': 'int' } }
  87
  88##
  89# @replay-delete-break:
  90#
  91# Remove replay breakpoint which was set with @replay-break.
  92# The command is ignored when there are no replay breakpoints.
  93#
  94# Since: 5.2
  95#
  96# Example:
  97#
  98# -> { "execute": "replay-delete-break" }
  99#
 100##
 101{ 'command': 'replay-delete-break' }
 102
 103##
 104# @replay-seek:
 105#
 106# Automatically proceed to the instruction count @icount, when
 107# replaying the execution. The command automatically loads nearest
 108# snapshot and replays the execution to find the desired instruction.
 109# When there is no preceding snapshot or the execution is not replayed,
 110# then the command fails.
 111# icount for the reference may be obtained with @query-replay command.
 112#
 113# @icount: target instruction count
 114#
 115# Since: 5.2
 116#
 117# Example:
 118#
 119# -> { "execute": "replay-seek", "data": { "icount": 220414 } }
 120##
 121{ 'command': 'replay-seek', 'data': { 'icount': 'int' } }
 122