hmp: Add 'one-insn-per-tb' command equivalent to 'singlestep'

The 'singlestep' HMP command is confusing, because it doesn't
actually have anything to do with single-stepping the CPU.  What it
does do is force TCG emulation to put one guest instruction in each
TB, which can be useful in some situations.

Create a new HMP command  'one-insn-per-tb', so we can document that
'singlestep' is just a deprecated synonym for it, and eventually
perhaps drop it.

We aren't obliged to do deprecate-and-drop for HMP commands,
but it's easy enough to do so, so we do.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20230417164041.684562-9-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell
2023-04-17 17:40:39 +01:00
parent e726acd5b8
commit e9ccfdd91d
5 changed files with 33 additions and 6 deletions

View File

@ -378,18 +378,35 @@ SRST
only *tag* as parameter.
ERST
{
.name = "one-insn-per-tb",
.args_type = "option:s?",
.params = "[on|off]",
.help = "run emulation with one guest instruction per translation block",
.cmd = hmp_one_insn_per_tb,
},
SRST
``one-insn-per-tb [off]``
Run the emulation with one guest instruction per translation block.
This slows down emulation a lot, but can be useful in some situations,
such as when trying to analyse the logs produced by the ``-d`` option.
This only has an effect when using TCG, not with KVM or other accelerators.
If called with option off, the emulation returns to normal mode.
ERST
{
.name = "singlestep",
.args_type = "option:s?",
.params = "[on|off]",
.help = "run emulation in singlestep mode or switch to normal mode",
.cmd = hmp_singlestep,
.help = "deprecated synonym for one-insn-per-tb",
.cmd = hmp_one_insn_per_tb,
},
SRST
``singlestep [off]``
Run the emulation in single step mode.
If called with option off, the emulation returns to normal mode.
This is a deprecated synonym for the one-insn-per-tb command.
ERST
{