- qemu CVS, without using the kqemu module - Solaris x86 guest - I'm trying to debug a user program inside the Solaris x86 guest: $ mdb /bin/date > main:b > :r (note: mdb uses a breakpoint inside the target's dynamic linker ld.so.1 and single steps over that breakpoint during target program startup) When kqemu isn't available, single stepping a user programm in the /bin/mdb debugger in a Solaris x86 guest doesn't work. The Solaris x86 kernel verifies that the "BS (single step) flag (bit 14)" in the DR6 debug status register is set when a user program gets an exception #1 (EXCP01_SSTP). qemu currently doesn't set this bit for exception #1 (EXCP01_SSTP). The Solaris x86 kernel complains with the message: Unexpected INT 1 in user mode, dr6=0 At this point the Solaris x86 guest kernel is stuck in an endless loop with "Unexpected INT 1 in user mode, dr6=0" messages. Workaround: =========== For the x86 platform only: use the kqemu module. Suggested fix: ============== Set the 0x4000 bit in DR6 when single stepping. See the attached patch. With this patch applied, debugging a user program works.