Edebug is a source-level debugger for Emacs Lisp programs, with which you can:
- Step through evaluation, stopping before and after each expression.
- Set conditional or unconditional breakpoints.
- Stop when a specified condition is true (the global break event).
- Trace slow or fast, stopping briefly at each stop point, or at each breakpoint.
- Display expression results and evaluate expressions as if outside of Edebug.
- Automatically re-evaluate a list of expressions and display their results each time Edebug updates the display.
- Output trace information on function calls and returns.
- Stop when an error occurs.
- Display a backtrace, omitting Edebug’s own frames.
- Specify argument evaluation for macros and defining forms.
- Obtain rudimentary coverage testing and frequency counts.
The first three sections below should tell you enough about Edebug to start using it.
|• Using Edebug||Introduction to use of Edebug.|
|• Instrumenting||You must instrument your code in order to debug it with Edebug.|
|• Modes||Execution modes, stopping more or less often.|
|• Jumping||Commands to jump to a specified place.|
|• Misc||Miscellaneous commands.|
|• Breaks||Setting breakpoints to make the program stop.|
|• Trapping Errors||Trapping errors with Edebug.|
|• Views||Views inside and outside of Edebug.|
|• Eval||Evaluating expressions within Edebug.|
|• Eval List||Expressions whose values are displayed each time you enter Edebug.|
|• Printing in Edebug||Customization of printing.|
|• Trace Buffer||How to produce trace output in a buffer.|
|• Coverage Testing||How to test evaluation coverage.|
|• The Outside Context||Data that Edebug saves and restores.|
|• Edebug and Macros||Specifying how to handle macro calls.|
|• Options||Option variables for customizing Edebug.|