Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[GDB] Handle kill and detach packets.
This commit also includes a test to ensure that single stepping works,
since continue, kill, detach, and single step all share code.
  • Loading branch information
stefanha authored and Michael Brown committed Jun 30, 2008
1 parent 27731d9 commit 59b5465
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
13 changes: 8 additions & 5 deletions src/core/gdbstub.c
Expand Up @@ -235,11 +235,14 @@ static void gdbstub_rx_packet ( struct gdbstub *stub ) {
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;
Expand Down
4 changes: 4 additions & 0 deletions src/tests/gdbstub_test.S
Expand Up @@ -25,5 +25,9 @@ gdbstub_test:
int $3
addl $8, %esp

/* 5. Step test */
int $3
nop

1:
jmp 1b
7 changes: 7 additions & 0 deletions src/tests/gdbstub_test.gdb
Expand Up @@ -71,10 +71,17 @@ define gpxe_test_mem_write
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_read
gpxe_test_regs_write
gpxe_test_mem_read
gpxe_test_mem_write
gpxe_test_step

0 comments on commit 59b5465

Please sign in to comment.