18.2 Edebug
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. |