Alessandro Serra 3248f97ce6 review app package 2 years ago
..
examples 3f52cd15c7 review debugger 2 years ago
src 3248f97ce6 review app package 2 years ago
LICENSE 37e8f06a17 move folders 2 years ago
README.md d961bf7cc7 use *default-debugger* as symbol 2 years ago
README.org d961bf7cc7 use *default-debugger* as symbol 2 years ago
lilu-debugger.asd f21fa81639 remove launcher 2 years ago
packages.lisp 9093fd0fc9 improve dmenu 2 years ago

README.md

Table of Contents

  1. lilu-debugger: debugging utilities
    1. Usage
      1. Debugging
      2. Breaking
    2. Installation
    3. Implemented Debuggers
    4. Author
    5. Copyright
    6. License

lilu-debugger: debugging utilities

Usage

Debugging

To install the debugger hook:

(enable-debugger)

To ensure it is installed globally:

(enable-debugger :force-global-p t)

To uninstall it

(disable-debugger)
;; (disable-debugger :force-global-p t)

To activate a debugger (e.g. emacs):

(setf (active-debugger) :emacs)

To get the list of installed debuggers:

(registered-debuggers)

To get the active debugger:

(active-debugger)

To set a default-debugger (e.g. emacs):

(setf *default-debugger* :emacs)

to use it:

(setf (active-debugger) :default)

or:

(setf (active-debugger) :dynamic) ;; it check *default-debugger* at every invocation

To use a degugger locally (e.g. emacs):

(with-debugger (:emacs)
  ...
  )

To ignore condition (inside with-debugger):

(with-debugger (:emacs)
  ...
  (ignore-conditions
    ...
    )
  ...
  )

Breaking

To install the debugger hook for the break function:

(enable-break)

To ensure it is installed globally:

(enable-break :force-global-p t)

To uninstall it

(disable-break)
;; (disable-debugger :force-global-p t)

To activate a specific debugger for break (e.g. emacs):

(setf (active-break-debugger) :emacs)

To set break-on-signals:

(with-break-on-signals (:emacs)
  ...
  )

or:

(with-debugger (:emacs 'warn)
  ...
  )

Installation

Clone the project into local-projects of quicklisp, then

(ql:quickload :lilu-debugger)

Load different debugger implementation:

(ql:quickload :lilu-debugger/emacs) ;; require lilu-emacs
(ql:quickload :lilu-debugger/clim)  ;; require mcclim
(ql:quickload :lilu-debugger/dmenu) ;; require lilu-dmenu

Implemented Debuggers

Name What Requires Quicklisp
:none do nothing   s
:abort always invoke abort restart    
:quit always exit from common lisp    
:default see defaul-debugger    
:dynamic see default-debugger at every invocation    
:emacs open emacs and run its debugger lilu-emacs No
:lem open lem and run its debugger mcclim Yes
:clim   lilu-lem No
:dmenu use dmenu to select a debugger lilu-dmenu No

Author

  • Alessandro Serra (gas2serra@gmail.com)

Copyright

Copyright (c) 2021 Alessandro Serra (gas2serra@gmail.com)

License

Creative Commons CC0 1.0 Universal