Changeset 3341


Ignore:
Timestamp:
Sep 27, 2012, 11:17:26 PM (3 years 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.