summaryrefslogtreecommitdiff
path: root/devdocs/elisp/backtraces.html
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
committerCraig Jennings <c@cjennings.net>2024-04-07 13:41:34 -0500
commit754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch)
treef1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/elisp/backtraces.html
new repository
Diffstat (limited to 'devdocs/elisp/backtraces.html')
-rw-r--r--devdocs/elisp/backtraces.html14
1 files changed, 14 insertions, 0 deletions
diff --git a/devdocs/elisp/backtraces.html b/devdocs/elisp/backtraces.html
new file mode 100644
index 00000000..3ede747b
--- /dev/null
+++ b/devdocs/elisp/backtraces.html
@@ -0,0 +1,14 @@
+ <h4 class="subsection">Backtraces</h4> <p>Debugger mode is derived from Backtrace mode, which is also used to show backtraces by Edebug and ERT. (see <a href="edebug">Edebug</a>, and <a href="https://www.gnu.org/software/emacs/manual/html_node/ert/index.html#Top">the ERT manual</a> in <cite>ERT: Emacs Lisp Regression Testing</cite>.) </p> <p>The backtrace buffer shows you the functions that are executing and their argument values. When a backtrace buffer is created, it shows each stack frame on one, possibly very long, line. (A stack frame is the place where the Lisp interpreter records information about a particular invocation of a function.) The most recently called function will be at the top. </p> <p>In a backtrace you can specify a stack frame by moving point to a line describing that frame. The frame whose line point is on is considered the <em>current frame</em>. </p> <p>If a function name is underlined, that means Emacs knows where its source code is located. You can click with the mouse on that name, or move to it and type <tt class="key">RET</tt>, to visit the source code. You can also type <tt class="key">RET</tt> while point is on any name of a function or variable which is not underlined, to see help information for that symbol in a help buffer, if any exists. The <code>xref-find-definitions</code> command, bound to <kbd>M-.</kbd>, can also be used on any identifier in a backtrace (see <a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Looking-Up-Identifiers.html#Looking-Up-Identifiers">Looking Up Identifiers</a> in <cite>The GNU Emacs Manual</cite>). </p> <p>In backtraces, the tails of long lists and the ends of long strings, vectors or structures, as well as objects which are deeply nested, will be printed as underlined “...”. You can click with the mouse on a “...”, or type <tt class="key">RET</tt> while point is on it, to show the part of the object that was hidden. To control how much abbreviation is done, customize <code>backtrace-line-length</code>. </p> <p>Here is a list of commands for navigating and viewing backtraces: </p> <dl compact> <dt><kbd>v</kbd></dt> <dd>
+<p>Toggle the display of local variables of the current stack frame. </p> </dd> <dt><kbd>p</kbd></dt> <dd>
+<p>Move to the beginning of the frame, or to the beginning of the previous frame. </p> </dd> <dt><kbd>n</kbd></dt> <dd>
+<p>Move to the beginning of the next frame. </p> </dd> <dt><kbd>+</kbd></dt> <dd>
+<p>Add line breaks and indentation to the top-level Lisp form at point to make it more readable. </p> </dd> <dt><kbd>-</kbd></dt> <dd>
+<p>Collapse the top-level Lisp form at point back to a single line. </p> </dd> <dt><kbd>#</kbd></dt> <dd>
+<p>Toggle <code>print-circle</code> for the frame at point. </p> </dd> <dt><kbd>:</kbd></dt> <dd>
+<p>Toggle <code>print-gensym</code> for the frame at point. </p> </dd> <dt><kbd>.</kbd></dt> <dd>
+<p>Expand all the forms abbreviated with “...” in the frame at point. </p> </dd> </dl><div class="_attribution">
+ <p class="_attribution-p">
+ Copyright &copy; 1990-1996, 1998-2022 Free Software Foundation, Inc. <br>Licensed under the GNU GPL license.<br>
+ <a href="https://www.gnu.org/software/emacs/manual/html_node/elisp/Backtraces.html" class="_attribution-link">https://www.gnu.org/software/emacs/manual/html_node/elisp/Backtraces.html</a>
+ </p>
+</div>