Changeset 3341


Ignore:
Timestamp:
Sep 27, 2012, 11:17:26 PM (22 months ago)
Author:
wmb
Message:

Debugger - improve visual debugger redisplay so it's rarely necessary to use the L command. See OLPC trac #12105.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • forth/lib/debug.fth

    r3329 r3341  
    3838variable res 
    3939headers 
    40 false value redisplay? 
     40 
     41-1 value displayed-xt 
     42: force-redisplay  ( -- )  -1 to displayed-xt  ; 
    4143 
    4244: (debug)       (s low-adr hi-adr -- ) 
     
    4749   then 
    4850   step? on 
    49    true is redisplay? 
    50 ; 
     51   force-redisplay 
     52; 
     53 
    5154headerless 
    5255: 'unnest   (s pfa -- pfa' ) 
     
    1891920 value the-ip 
    1901930 value the-rp 
     194: redisplay?  ( -- flag )  displayed-xt  the-ip find-cfa <>  ; 
     195 
    191196: (.rs  ( -- ) 
    192197   show-rstack @ 0=  if  exit  then 
     
    211216   ." Stack: " #out @ #line @ to full-stack-xy  cr  \ For stack 
    212217   the-ip debug-see 
     218   the-ip find-cfa to displayed-xt 
    213219   cr 
    214220   \ Display the initial stack on the cursor line 
     
    225231      then 
    226232      0 show-rstack ! 
    227       false is redisplay? 
    228233   then 
    229234; 
     
    270275            ascii C  of                                               \ Continue 
    271276               step? @ 0= step? !               
    272                step? @ 0=  if  true to scrolling-debug?  true to redisplay?  then 
     277               step? @ 0=  if  true to scrolling-debug?  force-redisplay  then 
    273278               true 
    274279            endof 
     
    291296            ascii \  of  show-rstack @ 0= show-rstack !  false  endof  \ toggle return stack display 
    292297            ascii X  of  hex-stack @ 0= hex-stack !      false  endof  \ toggle heX stack display 
    293             ascii L  of  true to redisplay?              false  endof  \ Redisplay 
     298            ascii L  of  force-redisplay                 false  endof  \ Redisplay 
    294299            ascii V  of                                         \ toggle Visual (2D) mode 
    295300               scrolling-debug? 0= to scrolling-debug?       
    296                scrolling-debug? 0=  if  true to redisplay?  then  false 
     301               scrolling-debug? 0=  if  force-redisplay  then  false 
    297302            endof 
    298303            ( default )  true swap 
     
    310315\   scrolling-debug? 0=  if  to-result-loc  then 
    311316   the-ip token@  dup ['] unnest =  swap ['] exit =  or  if 
    312       cr  true is redisplay? 
     317      cr  force-redisplay 
    313318   then 
    314319   slow-next? @  if  pnext  then 
     
    326331; 
    327332: debugging  ( -- )  ' .debug-short-help  dup (debug  execute  ; 
    328 : resume    (s -- )  true is exit-interact?  pnext  ; 
     333: resume    (s -- )  true is exit-interact?  force-redisplay  pnext  ; 
    329334: stepping  (s -- )  step? on  ; 
    330335: tracing   (s -- )  step? off ; 
Note: See TracChangeset for help on using the changeset viewer.