The '-singlestep' option 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 command line argument -one-insn-per-tb, so we can document that -singlestep is just a deprecated synonym for it, and eventually perhaps drop it. Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> --- softmmu/vl.c | 1 + qemu-options.hx | 14 ++++++++++++-- tcg/tci/README | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/softmmu/vl.c b/softmmu/vl.c index dbe5124b5e7..61335ec7bc0 100644 --- a/softmmu/vl.c +++ b/softmmu/vl.c @@ -2957,6 +2957,7 @@ void qemu_init(int argc, char **argv) qdict_put_str(machine_opts_dict, "firmware", optarg); break; case QEMU_OPTION_singlestep: + case QEMU_OPTION_one_insn_per_tb: one_insn_per_tb = 1; break; case QEMU_OPTION_S: diff --git a/qemu-options.hx b/qemu-options.hx index 88e93c61031..184f8cc36d0 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -4158,11 +4158,21 @@ SRST from a script. ERST +DEF("one-insn-per-tb", 0, QEMU_OPTION_one_insn_per_tb, \ + "-one-insn-per-tb run with one guest instruction per emulated TB\n", QEMU_ARCH_ALL) +SRST +``-one-insn-per-tb`` + 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. +ERST + DEF("singlestep", 0, QEMU_OPTION_singlestep, \ - "-singlestep always run in singlestep mode\n", QEMU_ARCH_ALL) + "-singlestep deprecated synonym for -one-insn-per-tb\n", QEMU_ARCH_ALL) SRST ``-singlestep`` - Run the emulation in single step mode. + This is a deprecated synonym for the -one-insn-per-tb option. ERST DEF("preconfig", 0, QEMU_OPTION_preconfig, \ diff --git a/tcg/tci/README b/tcg/tci/README index f72a40a395a..751558f2892 100644 --- a/tcg/tci/README +++ b/tcg/tci/README @@ -49,7 +49,7 @@ The only difference from running QEMU with TCI to running without TCI should be speed. Especially during development of TCI, it was very useful to compare runs with and without TCI. Create /tmp/qemu.log by - qemu-system-i386 -d in_asm,op_opt,cpu -D /tmp/qemu.log -singlestep + qemu-system-i386 -d in_asm,op_opt,cpu -D /tmp/qemu.log -one-insn-per-tb once with interpreter and once without interpreter and compare the resulting qemu.log files. This is also useful to see the effects of additional -- 2.34.1