This commit also includes a test to ensure that single stepping works,
since continue, kill, detach, and single step all share code.
case 'M':
gdbstub_write_mem ( stub );
break;
- case 'c':
- gdbstub_continue ( stub, 0 );
- break;
- case 's':
- gdbstub_continue ( stub, 1 );
+ case 'c': /* Continue */
+ case 'k': /* Kill */
+ case 's': /* Step */
+ case 'D': /* Detach */
+ gdbstub_continue ( stub, stub->payload [ 0 ] == 's' );
+ if ( stub->payload [ 0 ] == 'D' ) {
+ gdbstub_send_ok ( stub );
+ }
break;
default:
stub->len = 0;
int $3
addl $8, %esp
+ /* 5. Step test */
+ int $3
+ nop
+
1:
jmp 1b
gpxe_assert ({char}($esp)) (char)0x99 "gpxe_test_mem_write char"
end
+define gpxe_test_step
+ c
+ si
+ gpxe_assert ({char}($eip-1)) (char)0x90 "gpxe_test_step" # nop = 0x90
+end
+
gpxe_load_symbols
gpxe_connect
gpxe_start_tests
gpxe_test_regs_write
gpxe_test_mem_read
gpxe_test_mem_write
+gpxe_test_step