Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/peter-lyons-kehl/dbg
Tracing evaluation order
https://github.com/peter-lyons-kehl/dbg
clojure debug debugger-visualizer debugging debugging-tool stack stacktrace trace tracing
Last synced: about 2 months ago
JSON representation
Tracing evaluation order
- Host: GitHub
- URL: https://github.com/peter-lyons-kehl/dbg
- Owner: peter-lyons-kehl
- License: gpl-3.0
- Created: 2018-11-07T17:29:09.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-08T07:41:14.000Z (about 6 years ago)
- Last Synced: 2024-08-15T23:21:48.078Z (5 months ago)
- Topics: clojure, debug, debugger-visualizer, debugging, debugging-tool, stack, stacktrace, trace, tracing
- Language: Clojure
- Size: 28.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dbg
A Clojure library designed to trace evaluation of functions calls, macros and special forms. It indents any output.
It logs entering and leaving functions or macros/special forms. It indents them, along with any inner output - simple and pretty. You prefix function calls with `dbgf` or macros/special forms with `dbg`. It works without any extra parens (). Hence diffs are shorter, easier to read. Isn't that practical?
# Usage
```
(dbgf function-name-or-function-generating-expression parameters-if-any...)
(dbg macro-or-special-form-or-function-name parameters-if-any...)
```## dbgloop and dbgrecur
Those serve to replace `loop` and `recur`. However, in order to indent any output, they don't use tail recursion. Instead, they use stack. Hence they may run out of stack space for long iterations.
```
(dbgloop [initial bindings] forms...)
(dbgrecur [new binding values])
```[![Clojars Project](https://img.shields.io/clojars/v/dbg.svg)](https://clojars.org/dbg)