Add new command line option -singlestep for tcg single stepping.

This replaces a compile time option for some targets and adds
this feature to targets which did not have a compile time option.

Add monitor command to enable or disable single step mode.

Modify monitor command "info status" to display single step mode.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7004 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
aurel32 2009-04-05 20:08:59 +00:00
parent 79d342dc6b
commit 1b530a6dfc
17 changed files with 79 additions and 19 deletions

View file

@ -527,6 +527,17 @@ static void do_log(Monitor *mon, const char *items)
cpu_set_log(mask);
}
static void do_singlestep(Monitor *mon, const char *option)
{
if (!option || !strcmp(option, "on")) {
singlestep = 1;
} else if (!strcmp(option, "off")) {
singlestep = 0;
} else {
monitor_printf(mon, "unexpected option %s\n", option);
}
}
static void do_stop(Monitor *mon)
{
vm_stop(EXCP_INTERRUPT);
@ -1511,9 +1522,13 @@ static void do_inject_nmi(Monitor *mon, int cpu_index)
static void do_info_status(Monitor *mon)
{
if (vm_running)
monitor_printf(mon, "VM status: running\n");
else
if (vm_running) {
if (singlestep) {
monitor_printf(mon, "VM status: running (single step mode)\n");
} else {
monitor_printf(mon, "VM status: running\n");
}
} else
monitor_printf(mon, "VM status: paused\n");
}
@ -1644,6 +1659,8 @@ static const mon_cmd_t mon_cmds[] = {
"tag|id", "restore a VM snapshot from its tag or id" },
{ "delvm", "s", do_delvm,
"tag|id", "delete a VM snapshot from its tag or id" },
{ "singlestep", "s?", do_singlestep,
"[on|off]", "run emulation in singlestep mode or switch to normal mode", },
{ "stop", "", do_stop,
"", "stop emulation", },
{ "c|cont", "", do_cont,