Up: Breakpoint Commands [Contents][Index]
Consider this definition of the factorial function:
(defun ! (n) (if (zerop n) 1 (* n (! (1- n)))))
This debugger session demonstrates the use of breakpoints:
common-lisp-user> (break) ; Invoke debugger Break Restarts: 0: [CONTINUE] Return from BREAK. 1: [ABORT ] Return to Top-Level. Debug (type H for help) (INTERACTIVE-EVAL (BREAK)) 0] ll #'! 0: #'(LAMBDA (N) (BLOCK ! (IF # 1 #))) 1: (ZEROP N) 2: (* N (! (1- N))) 3: (1- N) 4: (! (1- N)) 5: (* N (! (1- N))) 6: #'(LAMBDA (N) (BLOCK ! (IF # 1 #))) 0] br 2 (* N (! (1- N))) 1: 2 in ! Added. 0] q common-lisp-user> (! 10) ; Call the function *Breakpoint hit* Restarts: 0: [CONTINUE] Return from BREAK. 1: [ABORT ] Return to Top-Level. Debug (type H for help) (! 10) ; We are now in first call (arg 10) before the multiply Source: (* N (! (1- N))) 3] st *Step* (! 10) ; We have finished evaluation of (1- n) Source: (1- N) 3] st *Breakpoint hit* Restarts: 0: [CONTINUE] Return from BREAK. 1: [ABORT ] Return to Top-Level. Debug (type H for help) (! 9) ; We hit the breakpoint in the recursive call Source: (* N (! (1- N))) 3]
Up: Breakpoint Commands [Contents][Index]