From 19386ec2c8c9f266425453673ba051cdb550d0c3 Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Thu, 12 Jun 2008 16:56:20 +0100 Subject: [GDB] Add watch and rwatch hardware watchpoints --- src/tests/gdbstub_test.S | 21 +++++++++++++++++++++ src/tests/gdbstub_test.gdb | 30 ++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) (limited to 'src/tests') diff --git a/src/tests/gdbstub_test.S b/src/tests/gdbstub_test.S index 647830898..bd293836b 100644 --- a/src/tests/gdbstub_test.S +++ b/src/tests/gdbstub_test.S @@ -1,4 +1,9 @@ .arch i386 + + .section ".data" +watch_me: + .long 0xfeedbeef + .section ".text" .code32 gdbstub_test: @@ -29,5 +34,21 @@ gdbstub_test: int $3 nop + /* 6. Access watch test */ + movl $0x600d0000, %ecx + movl watch_me, %eax + movl $0xbad00000, %ecx + int $3 + movl $0x600d0001, %ecx + movl %eax, watch_me + movl $0xbad00001, %ecx + int $3 + + /* 7. Write watch test */ + movl $0x600d0002, %ecx + movl %eax, watch_me + movl $0xbad00002, %ecx + int $3 + 1: jmp 1b diff --git a/src/tests/gdbstub_test.gdb b/src/tests/gdbstub_test.gdb index c86d4f2aa..191799af5 100755 --- a/src/tests/gdbstub_test.gdb +++ b/src/tests/gdbstub_test.gdb @@ -77,6 +77,34 @@ define gpxe_test_step gpxe_assert ({char}($eip-1)) (char)0x90 "gpxe_test_step" # nop = 0x90 end +define gpxe_test_awatch + awatch watch_me + + c + gpxe_assert $ecx 0x600d0000 "gpxe_test_awatch" + if $ecx == 0x600d0000 + c + end + + c + gpxe_assert $ecx 0x600d0001 "gpxe_test_awatch" + if $ecx == 0x600d0001 + c + end + + delete +end + +define gpxe_test_watch + watch watch_me + c + gpxe_assert $ecx 0x600d0002 "gpxe_test_watch" + if $ecx == 0x600d0002 + c + end + delete +end + gpxe_load_symbols gpxe_start_tests gpxe_test_regs_read @@ -84,3 +112,5 @@ gpxe_test_regs_write gpxe_test_mem_read gpxe_test_mem_write gpxe_test_step +gpxe_test_awatch +gpxe_test_watch -- cgit v1.2.3-55-g7522