Reworked version of Forth Source debugger (Mark Cave-Ayland)

This patch implements the following Forth words:

   debug <xt> - Mark word for debugging
   debug-off  - Unmark all words for debugging
   resume     - Return from subordinate Forth interpreter

The source debugger also implements the following commands when it has
been activated:

   Up - Unmark current word for debugging, mark parent and continue
   Down - Mark next word for debugging
   Trace - Continue execution until end of word displaying
           debug information
   Rstack - Display contents of the Rstack
   Forth - Launch subordinate Forth interpreter

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>

git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@611 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
Blue Swirl
2009-11-15 21:03:51 +00:00
parent d61aaf0df5
commit d6aac5ffe2
14 changed files with 616 additions and 29 deletions

View File

@@ -12,6 +12,7 @@
\
0 value interactive?
0 value terminate?
: exit?
interactive? 0= if
@@ -122,7 +123,8 @@ defer outer-interpreter
refill
['] interpret catch print-status
again
terminate?
until
; ['] outer-interpreter (to)
\

View File

@@ -62,11 +62,16 @@
\ 7.5.3.4 Forth source-level debugger
: debug ( "old-name< >" -- )
;
: (debug ( xt -- )
parse-word \ Look up word CFA in dictionary
$find
0 = if
." could not locate word for debugging"
2drop
else
(debug
then
;
: stepping ( -- )
@@ -76,7 +81,10 @@
;
: debug-off ( -- )
(debug-off)
;
: resume ( -- )
\ Set interpreter termination flag
1 to terminate?
;

View File

@@ -62,9 +62,9 @@ create vocabularies #vocs cells allot \ word lists
\ which new definitions will be placed.
cr
get-order 0 ?do
." wordlist " i (.) type 2e emit space . cr
." wordlist " i (.) type 2e emit space u. cr
loop
cr ." definitions: " current @ . cr
cr ." definitions: " current @ u. cr
;