Incorrect handling of icebp
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| QEMU |
Undecided
|
Unassigned |
Bug Description
Wine conformance suite tests the behavior of various low-level Windows API functions. One of the tests involves checking the interaction of breakpoints and exceptions, and in particular the 'icebp' breakpoint. This test works on a Windows XP machine running either on the metal or in VMware ESX but fails when run in QEmu.
To reproduce the issue grab the attached 'exception.exe' file and run it. If you get 'Test failed' lines like below then it means the problem is still present:
exception.
exception.
exception.
exception: unhandled exception 80000004 at 003F0000
exception.
exception.
exception.
Note that this bug was not present in QEmu 1.1.2+dfsg-5 (Debian Testing) but is now present in 1.4.0~rc0+dfsg-1exp (Debian Experimental).
Francois Gouget (fgouget) wrote : | #1 |
Francois Gouget (fgouget) wrote : | #2 |
Francois Gouget (fgouget) wrote : | #3 |
This bug is still present in QEMU 1.7.0 (as per Debian's qemu-system-x86 1.7.0+dfsg-3 package).
Paolo Bonzini (bonzini) wrote : | #4 |
The patch submitted upstream was for the kernel. Is this also a bug in QEMU when TCG is disabled?
Paolo Bonzini (bonzini) wrote : | #5 |
s/TCG/KVM/ - Is this also a bug when KVM is disabled?
Changed in qemu: | |
status: | New → Incomplete |
Launchpad Janitor (janitor) wrote : | #6 |
[Expired for QEMU because there has been no activity for 60 days.]
Changed in qemu: | |
status: | Incomplete → Expired |
Francois Gouget (fgouget) wrote : | #7 |
Actually this got fixed by the following Linux kernel commit:
commit fd2a445a94d2ab6
KVM: VMX: Advance rip to after an ICEBP instruction
When entering an exception after an ICEBP, the saved instruction
pointer should point to after the instruction.
This fixes the bug here: https:/
Signed-off-by: Huw Davies <email address hidden>
Reviewed-by: Jan Kiszka <email address hidden>
Signed-off-by: Marcelo Tosatti <email address hidden>
Changed in qemu: | |
status: | Expired → Fix Released |
This bug is still present in QEMU 1.6.0 (as per Debian's qemu-system-x86 1.6.0+dfsg-1 package).