Am Samstag 12 Februar 2011, 07:49:52 schrieb Blue Swirl:
> > That said, IMHO the best handling of unknown opcodes would be to kill the
> > VM.
>
> In this case it should be OK. Alternatively the VM could be halted, so
> that instead of restarting QEMU, only system_reset needs to be issued.
> This may be more useful for developers, since for example registers
> and memory can be examined after the error.
Good idea! May I call vm_stop() in a tcg helper? Like in the following
example:
void helper_vm_stop(uint32_t msg_id)
{
if (qemu_log_enabled()) {
qemu_log("VM stopped: %s", err_msg_str[msg_id]);
} else {
fprintf(stderr, "VM stopped: %s", err_msg_str[msg_id]);
}
#ifndef CONFIG_USER_ONLY
vm_stop(0);
#endif
env->exception_index = EXCP_HALTED;
cpu_loop_exit();
}
If not, what is the proper way to stop/pause the VM from within the executed
code?