summaryrefslogtreecommitdiff
path: root/devdocs/elisp/edebug.html
blob: ce147b09d3a9905f681c62f1d59b59250c985b6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
 <h3 class="section">Edebug</h3>  <p>Edebug is a source-level debugger for Emacs Lisp programs, with which you can: </p> <ul> <li> Step through evaluation, stopping before and after each expression. </li>
<li> Set conditional or unconditional breakpoints. </li>
<li> Stop when a specified condition is true (the global break event). </li>
<li> Trace slow or fast, stopping briefly at each stop point, or at each breakpoint. </li>
<li> Display expression results and evaluate expressions as if outside of Edebug. </li>
<li> Automatically re-evaluate a list of expressions and display their results each time Edebug updates the display. </li>
<li> Output trace information on function calls and returns. </li>
<li> Stop when an error occurs. </li>
<li> Display a backtrace, omitting Edebug’s own frames. </li>
<li> Specify argument evaluation for macros and defining forms. </li>
<li> Obtain rudimentary coverage testing and frequency counts. </li>
</ul> <p>The first three sections below should tell you enough about Edebug to start using it. </p> <table class="menu" border="0" cellspacing="0"> <tr>
<td align="left" valign="top">• <a href="using-edebug" accesskey="1">Using Edebug</a>
</td>
<td> </td>
<td align="left" valign="top">Introduction to use of Edebug. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="instrumenting" accesskey="2">Instrumenting</a>
</td>
<td> </td>
<td align="left" valign="top">You must instrument your code in order to debug it with Edebug. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="edebug-execution-modes" accesskey="3">Modes</a>
</td>
<td> </td>
<td align="left" valign="top">Execution modes, stopping more or less often. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="jumping" accesskey="4">Jumping</a>
</td>
<td> </td>
<td align="left" valign="top">Commands to jump to a specified place. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="edebug-misc" accesskey="5">Misc</a>
</td>
<td> </td>
<td align="left" valign="top">Miscellaneous commands. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="breaks" accesskey="6">Breaks</a>
</td>
<td> </td>
<td align="left" valign="top">Setting breakpoints to make the program stop. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="trapping-errors" accesskey="7">Trapping Errors</a>
</td>
<td> </td>
<td align="left" valign="top">Trapping errors with Edebug. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="edebug-views" accesskey="8">Views</a>
</td>
<td> </td>
<td align="left" valign="top">Views inside and outside of Edebug. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="edebug-eval" accesskey="9">Eval</a>
</td>
<td> </td>
<td align="left" valign="top">Evaluating expressions within Edebug. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="eval-list">Eval List</a>
</td>
<td> </td>
<td align="left" valign="top">Expressions whose values are displayed each time you enter Edebug. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="printing-in-edebug">Printing in Edebug</a>
</td>
<td> </td>
<td align="left" valign="top">Customization of printing. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="trace-buffer">Trace Buffer</a>
</td>
<td> </td>
<td align="left" valign="top">How to produce trace output in a buffer. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="coverage-testing">Coverage Testing</a>
</td>
<td> </td>
<td align="left" valign="top">How to test evaluation coverage. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="the-outside-context">The Outside Context</a>
</td>
<td> </td>
<td align="left" valign="top">Data that Edebug saves and restores. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="edebug-and-macros">Edebug and Macros</a>
</td>
<td> </td>
<td align="left" valign="top">Specifying how to handle macro calls. </td>
</tr> <tr>
<td align="left" valign="top">• <a href="edebug-options">Options</a>
</td>
<td> </td>
<td align="left" valign="top">Option variables for customizing Edebug. </td>
</tr> </table><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/Edebug.html" class="_attribution-link">https://www.gnu.org/software/emacs/manual/html_node/elisp/Edebug.html</a>
  </p>
</div>