$ od -c -N 50000 [phylum]<LISP>Lyric>Lispusers>Debugger-Context.TEdit!1 0000000 X E R O X \t D E B U G G E R - C 0000020 O N T E X T \r 2 \r \r 4 \r \r 1 \r \r 0000040 D E B U G G E R - C O N T E X T 0000060 \r 1 \r \r 4 \r \r B y : H e r b 0000100 J e l l i n e k ( J e l l i 0000120 n e k . p a @ X e r o x . c o m 0000140 ) \r T h i s d o c u m e n t 0000160 l a s t e d i t e d o n A 0000200 u g u s t 1 8 , 1 9 8 7 . \r 0000220 I N T R O D U C T I O N \r W h e 0000240 n d e b u g g i n g C o m m 0000260 o n L i s p p r o g r a m s 0000300 , h a v e y o u e v e r 0000320 w i s h e d t h a t t h e 0000340 X e r o x L i s p d e b u g 0000360 g e r l e t y o u d o t 0000400 h i n g s i n t h e r i g 0000420 h t l e x i c a l c o n t e 0000440 x t ? E v e r w i s h y 0000460 o u c o u l d a c c e s s 0000500 l o c a l l y - d e f i n e d 0000520 f u n c t i o n s , r e t u r 0000540 n f r o m b l o c k s , o 0000560 r e v a l u a t e v a r i a 0000600 b l e s i n t h e d e b u 0000620 g g e r w i t h o u t r e s 0000640 o r t i n g t o t h e i n 0000660 s p e c t o r ? E v e r w 0000700 i s h y o u c o u l d t e 0000720 l l t h e " b i g b o y s 0000740 " i n W a s h i n g t o n 0000760 a t h i n g o r t w o ? 0001000 W e l l , t w o o u t o 0001020 f t h r e e a i n ' t b a 0001040 d . D E B U G G E R - C O N 0001060 T E X T g i v e s y o u t 0001100 h e a b i l i t y t o a c 0001120 c e s s a n d m o d i f y 0001140 t h e l e x i c a l c o n t 0001160 e x t o f c o d e y o u 0001200 a r e d e b u g g i n g i n 0001220 a s t r a i g h t f o r w a 0001240 r d w a y . \r U S E R I N T 0001260 E R F A C E \r D E B U G G E R - 0001300 C O N T E X T d e f i n e s 0001320 t w o d e b u g g e r c o m 0001340 m a n d s t h a t a f f e c 0001360 t t h e d e b u g g e r ' s 0001400 l e x i c a l c o n t e x t 0001420 . \r l e x \t [ D e b u g g e r 0001440 C o m m a n d ] \r S e t s t h 0001460 e l e x i c a l c o n t e x 0001500 t o f t h e d e b u g g e 0001520 r w i n d o w t o t h a t 0001540 o f t h e s t a c k f r 0001560 a m e s e l e c t e d i n 0001600 t h e b a c k t r a c e w i 0001620 n d o w ( i l : l a s t p o s 0001640 ) . H e n c e f o r t h , 0001660 a l l e v a l u a t i o n d 0001700 o n e i n t h i s d e b u 0001720 g g e r w i n d o w w i l l 0001740 b e w i t h r e s p e c t 0001760 t o t h a t l e x i c a l 0002000 e n v i r o n m e n t . T 0002020 h e l e x i c a l e n v i r 0002040 o n m e n t o f a f r a m 0002060 e i s t a k e n t o b e 0002100 t h e f i r s t o n e e 0002120 n c o u n t e r e d a s a n 0002140 a r g u m e n t i n t h a 0002160 t f r a m e . O n c e t 0002200 h e l e x c o m m a n d i 0002220 s g i v e n , s e l e c t i 0002240 n g o t h e r s t a c k f 0002260 r a m e s i n t h e b a c 0002300 k t r a c e w i n d o w w i 0002320 l l n o t c h a n g e t h 0002340 e l e x i c a l e n v i r o 0002360 n m e n t ; y o u m u s t 0002400 i s s u e a n o t h e r l e 0002420 x c o m m a n d t o d o 0002440 s o . \r T h e l e x i c a l 0002460 e n v i r o n m e n t o f a 0002500 f r a m e i s t a k e n 0002520 t o b e t h e f i r s t 0002540 o n e e n c o u n t e r e d 0002560 a s a n a r g u m e n t i 0002600 n t h a t f r a m e . \r N . 0002620 B . A n y o p e r a t i o 0002640 n p e r f o r m e d i n a 0002660 l e x i c a l c o n t e x t 0002700 ( a s c r e a t e d b y 0002720 t h e l e x c o m m a n d ) 0002740 i s d o n e r e l a t i v 0002760 e t o t h a t c o n t e x 0003000 t . F o r e x a m p l e , 0003020 i f w e d o t h e f o 0003040 l l o w i n g : \r ( d e f u n 0003060 t e s t ( a b ) ( + a 0003100 b ) ) \r ( t e s t 3 t ) \t ; 0003120 g e t a w a r n i n g a 0003140 b o u t b ' s v a l u e \r r 0003160 e t r y \t \t ; e n t e r t h 0003200 e d e b u g g e r w i t h 0003220 " A r g n o t a N U M B E 0003240 R " e r r o r \r a n d t h e 0003260 n s e l e c t t h e ( + 0003300 a b ) f r a m e i n t h 0003320 e d e b u g g e r a n d s 0003340 a y \r l e x \r ( d e f u n f r 0003360 o b ( ) ( l i s t a b ) 0003400 ) \r C a l l i n g ( f r o b ) 0003420 l a t e r w i l l r e t u 0003440 r n ( 3 t ) e v e n a f 0003460 t e r y o u ' v e e x i t e 0003500 d t h e d e b u g g e r ; 0003520 t h i s i s p r o b a b l y 0003540 n o t w h a t y o u w a 0003560 n t . M o r e o v e r , i 0003600 f y o u s t o r e f r o b 0003620 o n a f i l e a n d r 0003640 e a d i t b a c k i n , 0003660 i t s l e x i c a l c o n t 0003700 e x t w i l l b e l o s t 0003720 , a s w i l l t h e v a 0003740 l u e s o f a a n d b . 0003760 \r u n l e x \t [ D e b u g g e r 0004000 C o m m a n d ] \r R e m o v e 0004020 s t h e c u r r e n t l e 0004040 x i c a l c o n t e x t ; a 0004060 l l e v a l u a t i o n w i 0004100 l l s u b s e q u e n t l y 0004120 b e d o n e w i t h r e s 0004140 p e c t t o t h e c u r r 0004160 e n t d y n a m i c e n v i 0004200 r o n m e n t . \r \0 \0 \0 \0 \0 003 0004220 ( L I S T ( ( P A G E N I L 0004240 ( P A P E R S I Z E L E T T 0004260 E R S T A R T I N G P A G E # 0004300 5 4 ) ( 0 0 6 1 2 7 9 0004320 2 ) ( ( F O L I O N I L ( 0004340 P A R A L O O K S ( Q U A D 0004360 C E N T E R E D ) C H A R L O 0004400 O K S ( S U P E R S C R I P T 0004420 0 I N V I S I B L E O F F 0004440 S E L E C T P O I N T O F F 0004460 P R O T E C T E D O F F S 0004500 I Z E 1 0 F A M I L Y M O 0004520 D E R N O V E R L I N E O F 0004540 F S T R I K E O U T O F F 0004560 U N D E R L I N E O F F E X 0004600 P A N S I O N R E G U L A R 0004620 S L O P E R E G U L A R W E 0004640 I G H T M E D I U M I N V E 0004660 R T E D O F F U S E R I N F 0004700 O N I L S T Y L E N I L ) 0004720 F O R M A T I N F O N I L ) 0004740 ( 1 7 4 3 6 2 8 8 3 6 ) 0004760 N I L ) ( H E A D I N G N 0005000 I L ( H E A D I N G T Y P E 0005020 R U N N I N G H E A D ) ( 8 4 0005040 7 4 4 5 2 8 3 6 ) N I L 0005060 ) ( T E X T N I L N I L 0005100 ( 8 4 9 6 4 5 6 6 0 0 ) 0005120 N I L ) ) ) ( P A G E N I L 0005140 ( P A P E R S I Z E N I L 0005160 . L E T T E R ) ( 0 0 6 0005200 1 2 7 9 2 ) ( ( F O L I O 0005220 N I L ( P A R A L O O K S ( 0005240 Q U A D C E N T E R E D ) C 0005260 H A R L O O K S ( S U P E R S 0005300 C R I P T 0 I N V I S I B L 0005320 E O F F S E L E C T P O I N 0005340 T O F F P R O T E C T E D 0005360 O F F S I Z E 1 0 F A M I 0005400 L Y M O D E R N O V E R L I 0005420 N E O F F S T R I K E O U T 0005440 O F F U N D E R L I N E O 0005460 F F E X P A N S I O N R E G 0005500 U L A R S L O P E R E G U L 0005520 A R W E I G H T M E D I U M 0005540 I N V E R T E D O F F U S 0005560 E R I N F O N I L S T Y L E 0005600 N I L ) F O R M A T I N F O 0005620 N I L ) ( 1 7 4 3 6 2 8 0005640 8 3 6 ) N I L ) ( H E A D 0005660 I N G N I L ( H E A D I N G 0005700 T Y P E R U N N I N G H E A D 0005720 ) ( 8 4 7 4 4 5 2 8 3 6 0005740 ) N I L ) ( T E X T N I L 0005760 N I L ( 8 4 9 6 4 5 6 0006000 6 0 0 ) N I L ) ) ) ( P A G 0006020 E N I L ( P A P E R S I Z E 0006040 N I L . L E T T E R ) ( 0006060 0 0 6 1 2 7 9 2 ) ( ( F 0006100 O L I O N I L ( P A R A L O 0006120 O K S ( Q U A D C E N T E R 0006140 E D ) C H A R L O O K S ( S 0006160 U P E R S C R I P T 0 I N V 0006200 I S I B L E O F F S E L E C 0006220 T P O I N T O F F P R O T E 0006240 C T E D O F F S I Z E 1 0 0006260 F A M I L Y M O D E R N O 0006300 V E R L I N E O F F S T R I 0006320 K E O U T O F F U N D E R L 0006340 I N E O F F E X P A N S I O 0006360 N R E G U L A R S L O P E 0006400 R E G U L A R W E I G H T M 0006420 E D I U M I N V E R T E D O 0006440 F F U S E R I N F O N I L 0006460 S T Y L E N I L ) F O R M A 0006500 T I N F O N I L ) ( 1 7 4 0006520 3 6 2 8 8 3 6 ) N I L ) 0006540 ( H E A D I N G N I L ( H E 0006560 A D I N G T Y P E R U N N I N 0006600 G H E A D ) ( 8 4 7 4 4 5 0006620 2 8 3 6 ) N I L ) ( T E X 0006640 T N I L N I L ( 8 4 9 6 0006660 4 5 6 6 0 0 ) N I L ) ) ) 0006700 ) ) \0 \0 \0 \0 \0 005 \0 \t \0 / \0 \0 \0 \0 0006720 001 310 \0 \a \0 \0 \0 001 003 004 \0 \0 001 001 310 001 0006740 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006760 \0 \0 \0 001 T \0 \0 \0 \0 \0 ( \0 \0 \0 \0 001 0007000 310 \0 \a \0 \0 \0 001 002 004 \0 \0 \0 \0 \0 \0 \0 0007020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007040 \0 \0 . \0 H \0 H 001 310 \0 002 \0 \0 \0 002 003 0007060 004 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007120 ( \0 H \0 H 001 324 \0 002 \0 \0 \0 002 002 004 \0 0007140 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007160 \0 \0 \0 \0 \0 \0 \0 \0 . \0 \0 \0 \0 001 310 \0 0007200 \v \0 \0 \0 004 003 004 \0 \0 001 001 310 001 \0 \0 \0 0007220 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007240 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 \0 001 310 \0 021 \0 0007260 \0 \0 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007300 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 0007320 212 \0 212 001 8 \0 006 \0 \0 \0 004 002 003 \0 \0 \0 0007340 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007360 \0 \0 \0 \0 \0 \0 ( \0 212 \0 212 001 8 \0 \0 \0 0007400 \0 \0 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007420 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 D \0 0007440 \0 \0 \0 001 310 \0 \0 \0 \0 \0 \0 003 004 \0 \0 001 0007460 001 310 001 \0 \0 \0 \0 \0 \0 \0 \v P A G E H 0007500 E A D I N G \0 \v R U N N I N G H 0007520 E A D \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0007540 \0 \0 \0 \0 \0 \0 004 \0 \a \0 024 \0 006 M O D 0007560 E R N \0 \n \0 \0 \0 \0 \0 \0 001 \0 \0 026 \0 0007600 \b T E R M I N A L \0 \n \0 \0 \0 \0 \0 0007620 \0 \0 \0 \0 024 \0 006 M O D E R N \0 \n \0 0007640 \0 \0 \0 \0 \0 002 \0 \0 024 \0 006 M O D E R 0007660 N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M 0007700 O D E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 0007720 024 \0 006 M O D E R N \0 006 \0 \0 \0 \0 \0 0007740 \0 \0 \0 \0 022 \0 004 L O G O \0 030 \0 \0 \0 0007760 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 002 \0 \t \0 \0 \0 0010000 005 \0 \0 \0 \0 \a \0 \0 \0 001 \0 \0 \0 \0 006 \0 0010020 \0 \0 021 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 \t 0010040 \0 \0 \0 002 \0 001 \0 \v H R U L E . G E 0010060 T F N 001 \0 024 \0 006 M O D E R N \0 \n 0010100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 0010120 004 \0 \0 \0 \0 \0 002 \0 \b \0 \0 \0 002 \0 001 \0 0010140 \v H R U L E . G E T F N 001 \0 024 \0 0010160 006 M O D E R N \0 \n \0 \0 \0 \0 \0 \0 \0 0010200 \0 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 0010220 \0 \b \0 \0 \0 002 \0 001 \0 \v H R U L E . 0010240 G E T F N 001 \0 024 \0 006 M O D E R N 0010260 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 0010300 \0 \0 004 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 021 \0 0010320 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \a \0 \0 \0 002 0010340 \0 001 \0 \v H R U L E . G E T F N 001 0010360 \0 024 \0 006 M O D E R N \0 \f \0 \0 \0 \0 0010400 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 0010420 \0 \0 002 \0 \b \0 \0 \0 002 \0 001 \0 \v H R U 0010440 L E . G E T F N 001 \0 024 \0 006 M O D 0010460 E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 0010500 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 006 \0 \0 0010520 \0 + \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 005 \0 0010540 \0 \0 . \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 0010560 \0 \0 \0 \r \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 0010600 002 \0 \0 002 \v \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 0010620 \0 005 \0 \0 \0 017 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0010640 002 \0 002 \0 \0 \0 [ \0 \0 \0 \0 004 \0 \0 \0 \0 0010660 \0 002 \0 001 \0 \0 \0 003 \0 \0 \0 \0 002 \0 \0 \0 0010700 024 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 0010720 \0 m \0 \0 \0 \0 004 \0 \0 \0 \n \0 \0 \0 \0 002 0010740 \0 \0 \0 343 \0 \0 \0 \0 004 \0 \0 \0 003 \0 \0 \0 0010760 \0 002 \0 \0 \0 210 \0 \0 \0 \0 004 \0 \0 \0 003 \0 0011000 \0 \0 \0 002 \0 \0 \0 023 \0 \0 \0 \0 004 \0 \0 \0 0011020 \0 \0 002 \0 002 \0 \0 \0 j \0 \0 \0 \0 004 \0 \0 0011040 \0 \0 \0 002 \0 002 \0 \0 \0 F \0 \0 \0 \0 004 \0 0011060 \0 \0 003 \0 \0 \0 \0 002 \0 \0 \0 R \0 \0 \0 \0 0011100 004 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 033 \0 \0 \0 0011120 \0 002 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 + \0 \0 0011140 \0 \0 002 \0 \0 \0 \0 \0 002 \0 004 \0 \0 \0 : \0 0011160 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 024 0011200 \0 \0 \0 \0 004 \0 \0 \0 \a \0 \0 \0 \0 002 \0 \0 0011220 \0 037 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 003 \0 0011240 \0 \0 004 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 003 0011260 \0 \0 \0 033 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 002 \0 0011300 002 \0 \0 \0 \b \0 \0 \0 \0 004 \0 \0 \0 006 \0 \0 0011320 \0 \0 002 \0 \0 \0 023 \0 \0 \0 \0 004 \0 \0 \0 005 0011340 \0 \0 \0 \0 002 \0 \0 \0 001 \0 \0 \0 \0 004 \0 \0 0011360 \0 % \0 \0 \0 \0 001 \0 \0 \0 > \0 \0 \0 \0 004 0011400 \0 \0 \0 004 \0 \0 \0 \0 002 \0 \0 \0 X \0 \0 \0 0011420 \0 004 \0 \0 \0 001 \0 \0 \0 \0 002 \0 \0 \0 005 \0 0011440 \0 \0 \0 004 \0 \0 \0 001 \0 \0 \0 \0 002 \0 \0 \0 0011460 002 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 001 \0 \0 0011500 \0 005 \0 \0 \0 \0 002 \0 \0 \0 024 \0 \0 \0 \0 004 0011520 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 200 \0 \0 \0 \0 0011540 004 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \b 212 \0 U z 0011560 272 0011561