[openfirmware] r982 - forth/lib

svn at openfirmware.info svn at openfirmware.info
Sun Oct 5 22:00:04 CEST 2008


Author: wmb
Date: 2008-10-05 22:00:04 +0200 (Sun, 05 Oct 2008)
New Revision: 982

Modified:
   forth/lib/rstrace.fth
Log:
Ftrace - fix ftrace brokenness resulting from a recent improvement to
the rstrace return stack display decoding.

Modified: forth/lib/rstrace.fth
===================================================================
--- forth/lib/rstrace.fth	2008-10-05 20:00:00 UTC (rev 981)
+++ forth/lib/rstrace.fth	2008-10-05 20:00:04 UTC (rev 982)
@@ -43,7 +43,16 @@
    then                                        ( rs-adr n )
    9 u.r
 ;
-: .traceline  ( rs-adr -- rs-adr' )
+: .traceline  ( ipaddr -- )
+   push-hex
+   dup reasonable-ip?
+   if    dup .last-executed ip>token .caller   else  9 u.r   then   cr
+   pop-base
+;
+\ Heuristic display of return stack items, recognizing Forth word nesting,
+\ catch frames, and do loop frames.
+\ For later: It would also be nice to recognize input stream nesting frames.
+: rtraceline  ( rs-adr -- rs-adr' )
    push-hex                    ( rs-adr )
    @+                          ( rs-adr' ip )
    dup reasonable-ip?  if      ( rs-adr ip )
@@ -59,7 +68,7 @@
 ;
 : (rstrace  ( end-adr start-adr -- )
     begin  2dup u>  while           ( end-adr adr )
-       .traceline                   ( end-adr adr' )
+       rtraceline                   ( end-adr adr' )
        exit?  if  2drop exit  then  ( end-adr adr )
     repeat                          ( end-adr adr )
     2drop




More information about the openfirmware mailing list