GNU Emacs Lisp Reference Manual
Chapter 15: Debugging Lisp Programs
There are three ways to investigate a problem in an Emacs Lisp program,
depending on what you are doing with the program when the problem appears.
-
If the problem occurs when you run the program, you can use a Lisp
debugger (either the default debugger or Edebug) to investigate what is
happening during execution.
-
If the problem is syntactic, so that Lisp cannot even read the program,
you can use the Emacs facilities for editing Lisp to localize it.
-
If the problem occurs when trying to compile the program with the byte
compiler, you need to know how to examine the compiler's input buffer.
Another useful debugging tool is the dribble file. When a dribble
file is open, Emacs copies all keyboard input characters to that file.
Afterward, you can examine the file to find out what input was used.
See Terminal Input.
For debugging problems in terminal descriptions, the
open-termscript function can be useful. See Terminal Output.