Ramon van Handel wrote:

> Outstanding issues:
>
> - For some reason, an aspect of the ICE stopped
>   working when the I/O emulation was implemented:
>   if you press "ctrl-c" in GDB, it won't stop like
>   it's supposed to if you're running the virtcode
>   kernel,

Fixed.  (needed to be ret>=0 in the main runloop.  Stupid.).

> - In kernel/emulate.c, operand_size is passed on
>   to the user code when I/O instructions are emulated.

[... but it's never 8]

I think you fixed this Ulrich ?

> - (note to self: fix this) the ICE can't really
>   stand being interrupted.  If you press ctrl-c
>   in ./user while the ICE is active (waiting
>   for packets or whatever) all kinds of weird things
>   may occur, like it getting into an infinite loop
>   or segfaulting.  The ICE should be more tolerant
>   and abort cleanly in such cases.

Fixed.

Moreover, I added vm_abort() and vm_break() in user.c,
and plugin_abort() and plugin_break() in plugin.c,
and eliminated the global use of the variables break_vm
and abort_vm.  The result is better in every way.
>From a few "abuse tests" the user program seems a lot
more stable now.

Patch is attached.

Ramon


patch-miscfix.diff.gz

Reply via email to