diff --git a/src/arch/i386/core/gdbidt.S b/src/arch/i386/core/gdbidt.S index a4949232..860f7b01 100644 --- a/src/arch/i386/core/gdbidt.S +++ b/src/arch/i386/core/gdbidt.S @@ -163,12 +163,18 @@ int_page_fault: #define IH_OFFSET_FLUX_END ( IH_OFFSET_END - 20 ) do_interrupt: /* Store CPU state in GDB register snapshot */ - pushl %gs - pushl %fs - pushl %es - pushl %ds - pushl %ss - pushl IH_OFFSET_FLUX_OLD_CS(%esp) + pushw $0 + pushw %gs + pushw $0 + pushw %fs + pushw $0 + pushw %es + pushw $0 + pushw %ds + pushw $0 + pushw %ss + pushw $0 + pushw IH_OFFSET_FLUX_OLD_CS + 2(%esp) pushl IH_OFFSET_FLUX_OLD_EFLAGS(%esp) pushl IH_OFFSET_FLUX_OLD_EIP(%esp) pushl %edi diff --git a/src/tests/gdbstub_test.gdb b/src/tests/gdbstub_test.gdb index 191799af..52aa693f 100755 --- a/src/tests/gdbstub_test.gdb +++ b/src/tests/gdbstub_test.gdb @@ -81,13 +81,13 @@ define gpxe_test_awatch awatch watch_me c - gpxe_assert $ecx 0x600d0000 "gpxe_test_awatch" + gpxe_assert $ecx 0x600d0000 "gpxe_test_awatch read" if $ecx == 0x600d0000 c end c - gpxe_assert $ecx 0x600d0001 "gpxe_test_awatch" + gpxe_assert $ecx 0x600d0001 "gpxe_test_awatch write" if $ecx == 0x600d0001 c end