The trivial-custom-debugger Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The trivial-custom-debugger Reference Manual

This is the trivial-custom-debugger Reference Manual, version 1.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Wed Jun 15 06:00:44 2022 GMT+0.

Table of Contents


1 Introduction

trivial-custom-debugger

Description

This is a portability library that allows one to fully override the standard debugger provided by their Common Lisp system for situations where binding *debugger-hook* is not enough - most notably, for #'break.

Inside the debugger function:

Purpose

A basic building block that allows one to implement a portable, custom debugger for Common Lisp systems in place of the original system-provided one.

Example

TRIVIAL-CUSTOM-DEBUGGER> (with-debugger ((lambda (condition hook)
                                           (declare (ignore hook))
                                           (format t ";; Debugging a ~S!~%" 
                                                   (type-of condition))
                                           (throw :handled t)))
                           (list (catch :handled (error 'error))
                                 (catch :handled (break))
                                 (let ((*break-on-signals* 'error))
                                   (catch :handled (signal 'error)))
                                 (catch :handled 
                                   (invoke-debugger (make-condition 'error)))))
;; Debugging a ERROR!
;; Debugging a SIMPLE-CONDITION!
;; Debugging a SIMPLE-CONDITION!
;; Debugging a ERROR!
(T T T T)

Limitations

Inside with-debugger or after calling install:

Tests

Very roughly tested on SBCL, CCL, ECL, Clasp, ABCL, CLISP, ACL, LispWorks, and Mezzano.

To run the test suite, evaluate (asdf:test-system :trivial-custom-debugger).


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 trivial-custom-debugger

Allows arbitrary functions to become the standard Lisp debugger

Author

Michał "phoe" Herda <phoe@disroot.org>

License

MIT

Version

1.0.0

Source

trivial-custom-debugger.asd.

Child Component

trivial-custom-debugger.lisp (file).


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


3.1.1 trivial-custom-debugger/trivial-custom-debugger.asd

Source

trivial-custom-debugger.asd.

Parent Component

trivial-custom-debugger (system).

ASDF Systems

trivial-custom-debugger.


3.1.2 trivial-custom-debugger/trivial-custom-debugger.lisp

Source

trivial-custom-debugger.asd.

Parent Component

trivial-custom-debugger (system).

Packages

trivial-custom-debugger.

Public Interface

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 trivial-custom-debugger

Source

trivial-custom-debugger.lisp.

Use List

common-lisp.

Public Interface

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Macros

Macro: with-debugger ((hook) &body body)

Executes the provided forms in the dynamic environment where the provided hook function is set to be the system debugger.

Package

trivial-custom-debugger.

Source

trivial-custom-debugger.lisp.


Previous: , Up: Public Interface   [Contents][Index]

5.1.2 Ordinary functions

Function: call-with-debugger (hook thunk)

Calls the provided thunk function in the dynamic environment where the provided hook function is set to be the system debugger.

Package

trivial-custom-debugger.

Source

trivial-custom-debugger.lisp.

Function: install-debugger (hook)

Sets the provided debugger hook function as the system debugger function.

Package

trivial-custom-debugger.

Source

trivial-custom-debugger.lisp.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables