Skip to main content

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.