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.