Even when pit-realtime is disabled and time0 is
hardcoded, the BOCHS does not execute emulation
repeatably. Execution of the emulated code can take
more than one way. It seems that an emulated device is
not properly initialized or at initialization uses
source that can be changed.
Logged In: YES
user_id=688090
Oh, I forgot to write some info:
I use the latest CVS version of the BOCHS. I found out that
this bug was introduced after 1.4.1, (bochs 1.4.1 emulates
repeatably under conditions described above).
Logged In: YES
user_id=688090
I found out that the lack of repeatability is caused by the
keyboard device model. When the simulator is started it
opens a window and puts focus on it. This may happen so
quickly that when the window is there I have the ENTER still
pressed. When I release it, it will send a keystroke to the
keyboard emulator.
Suggested solutions:
debugger is there (there is no point on having the focus on
the output window since the rest of emulator is busy reading
commands from user). This will force the BOCHS not to
trigger this keystroke when user don't want this.
record each keystroke and the time it was generated into a
file. Later when I ask BOCHS to replay that file, it will
open it and send keys from it in the recorded times ignoring
the real keyboard input. The format of the file should be
textual to allow me to generate my own one to test a
particular issue in my program. The same thing should be
done for the mouse (the file can be called "input.bochs" or
similarly and both input types can be put there).
P.S. I might implement solution 2 someday and put the patch
containing this feature here.
Does this bug still exist?
Debugged memtest failure last week - was perfectly repeatable, even up to level that failure happened always on the same time tick on every run