mirror of
https://github.com/ipxe/ipxe
synced 2026-04-04 03:00:20 +03:00
[GDB] Add watch and rwatch hardware watchpoints
This commit is contained in:
committed by
Michael Brown
parent
6e670b5f38
commit
19386ec2c8
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user