aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/common/lib/watcher.frt
blob: dedf190e09e48a9e56a4d95ded3cefd3ce2489bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

\ watcher
\ catch a read/write action on a particular address
\ and execute a predefined debug action.

\ core routines
variable watch-addr
defer watch-action
\ redefine memory access words
: ! dup watch-addr @ = if watch-action then ! ;
: c@ dup watch-addr @ = if watch-action then c@ ;
: c! dup watch-addr @ = if watch-action then c! ;
\ this one is last
: @ dup watch-addr @ = if watch-action then @ ;
\ simply use the debugshell
' ?? is watch-action

\ possible modifications
\  use an address range
\  use a list of addresses (address ranges)
\ ?