annotate man/lispref/edebug.texi @ 5940:c608d4b0b75e cygwin64 tip

rescue lost branch from 64bit.backup
author Henry Thompson <ht@markup.co.uk>
date Thu, 16 Dec 2021 18:48:58 +0000
parents 576fb035e263
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 \input texinfo @comment -*-texinfo-*-
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 @comment %**start of header
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 @setfilename ../info/edebug.info
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 @settitle Edebug User Manual
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 @comment %**end of header
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 @comment ================================================================
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 @comment This file has the same style as the XEmacs Lisp Reference Manual.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 @comment Run tex using version of `texinfo.tex' that comes with the elisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 @comment manual. Also, run `makeinfo' rather than `texinfo-format-buffer'.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 @comment ================================================================
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 @comment smallbook
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 @comment tex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 @comment \overfullrule=0pt
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 @comment end tex
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 @comment
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 @comment Combine indices.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 @syncodeindex fn cp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 @syncodeindex vr cp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 @syncodeindex ky cp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 @syncodeindex pg cp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 @syncodeindex tp cp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 @comment texinfo-format-buffer no longer ignores synindex.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 @comment
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 @ifinfo
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 This file documents Edebug
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 This is edition 1.6 of the Edebug User Manual
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33 for edebug Version 3.4,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 Copyright (C) 1991,1992,1993,1994 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 Permission is granted to make and distribute verbatim copies of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 this manual provided the copyright notice and this permission notice
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 are preserved on all copies.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 @ignore
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 Permission is granted to process this file through TeX and print the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 results, provided the printed document carries copying permission
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 notice identical to this one except for the removal of this paragraph
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 (this paragraph not being relevant to the printed manual).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 @end ignore
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 Permission is granted to copy and distribute modified versions of this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 manual under the conditions for verbatim copying, provided that the entire
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 resulting derived work is distributed under the terms of a permission
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 notice identical to this one.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 Permission is granted to copy and distribute translations of this manual
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 into another language, under the above conditions for modified versions,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 except that this permission notice may be stated in a translation approved
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 by the Foundation.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 @end ifinfo
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 @comment
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 @comment
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 @setchapternewpage odd
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 @titlepage
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 @title Edebug User Manual
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 @subtitle A Source Level Debugger for XEmacs Lisp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 @subtitle Edition 1.6, February 1994
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 @author by Daniel LaLiberte, liberte@@cs.uiuc.edu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 @page
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70 @vskip 0pt plus 1filll
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 Copyright @copyright{} 1991,1992,1993,1994 Daniel LaLiberte
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 @sp 2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 This is edition 1.6 of the @cite{Edebug User Manual}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 for edebug Version 3.4, February 1994
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 @sp 2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 Permission is granted to make and distribute verbatim copies of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 this manual provided the copyright notice and this permission notice
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 are preserved on all copies.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 Permission is granted to copy and distribute modified versions of this
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 manual under the conditions for verbatim copying, provided that the entire
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 resulting derived work is distributed under the terms of a permission
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 notice identical to this one.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 Permission is granted to copy and distribute translations of this manual
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 into another language, under the above conditions for modified versions,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 except that this permission notice may be stated in a translation approved
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 by this author.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 @end titlepage
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 @page
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 @node Top, Edebug, (dir), (dir)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 @chapter Edebug User Manual
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 Edebug is a source-level debugger for XEmacs Lisp programs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
103 @menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
104 * Edebug:: Edebug
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
105 * Bugs and Todo List:: Bugs and Todo List
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
106 * Index:: Index
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107 @end menu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 @c from included file:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 @c @node Edebug, Bugs and Todo List, Top, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111 @c @section Edebug
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
113 @include edebug-inc.texi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
114
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
115
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
116 @node Bugs and Todo List, Index, Edebug, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
117 @section Bugs and Todo List
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
118
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
119 A debugger should be as bug free as possible, and I strive to achieve
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
120 perfection. But Edebug is fairly complex and I don't understand all of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
121 it any more, so bugs happen. Please report anything suspicious to save
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
122 someone else the trouble of finding the same bug. Email to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
123 liberte@@cs.uiuc.edu. There is also a mailing list for Edebug beta
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
124 testers: edebug-request@@cs.uiuc.edu.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
125
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126 @cindex bugs in Edebug
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
127 If you want to run Edebug on Edebug itself, often it is easiest to first
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
128 copy a reliable version of @file{edebug.el} into another file, say
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
129 @file{fdebug.el}, and replace all strings @samp{edebug} with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
130 @samp{fdebug}, then evaluate the fdebug buffer and run Fdebug on
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
131 the buggy Edebug.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
132
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133 The following is a list of things I might do in the future, but often I
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
134 do other things not on the list as I discover the need for them. Send
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
135 me your suggestions and priorities.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
136
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
137 @itemize @bullet
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
138
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
139 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
140 Bug: I've noticed that the point of some buffers is reset to the point
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
141 of some other buffer, but I haven't been able to repeat it so perhaps
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
142 it is fixed.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
143
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
144 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
145 There may be a bug in the trace buffer display. It should display as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146 much as it can of the bottom of the buffer, but I think it scrolls off
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
147 sometimes.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
148
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
149 There is a bug in window updating when there is both a trace buffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150 and an evaluation list - the source buffer doesn't get displayed.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
151
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
152 @item
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
153 Killing and reinserting an instrumented definition or parts of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
154 it leaves marks in the buffer which may confuse Edebug later.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
155
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
156 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
157 Design problem: The position of definitions with complex names (e.g.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
158 defmethod) cannot be remembered properly, but nor can the names of such
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
159 definitions be determined from calls of them.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
160
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
161 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
162 After some errors, with @code{edebug-on-error} non-@code{nil}, continuing
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
163 execution succeeds, returning @code{nil}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
164
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
165 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
166 There are some interesting problems with defining or executing keyboard
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
167 macros across the Edebug activation boundary.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
168
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
169 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
170 There are no other known bugs, so if you find any, please let me know.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
171 There is nothing worse than a buggy debugger!
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
173 @item
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174 I need to rethink locally binding @code{debug-on-error},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
175 @code{debug-on-quit}, and keyboard macro state variables. Should we
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
176 allow the global values to be changed by the user?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
177
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
178 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
179 "(" in the first column of doc strings messes up edebug reading.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
180 But no more than normal.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 There could be a command to return a value from the debugger -
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184 particularly useful for errors.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
185
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187 Let me know if you find any side effects that could be avoided
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
188 or at least documented in the manual.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
189 Also @pxref{The Outside Context}.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
190
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
191 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
192 @cindex selective display
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
193 Make edebug work with selective display - don't stop in hidden lines.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 Debug just one or selected subexpressions of a definition - the rest is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197 evalled normally.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 Should @code{overlay-arrow-position} and @code{-string} be buffer local?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201 It would be better if they could be window-local.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204 Use copy of @code{current-local-map} instead of @code{emacs-lisp-mode-map}
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205 (but only copy the first time after lower level command - to save time).
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
206
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
207 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208 Better integration with standard debug.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
210 @item
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 428
diff changeset
211 Use @code{inhibit-quit} while edebugging?
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 Crawl mode would @code{sit-for} 0 or 1 in the outside window configuration
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 between each edebug step.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216 Maybe it should be a separate option that applies to trace as well.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
217
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
218 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
219 Customizable @code{sit-for} time. Less than a second would be nice.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
220
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
221 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
222 Generalize step, trace, Trace-fast to one command with argument for
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
223 @code{sit-for} time.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224 Generalize go, continue, Continue-fast to another command with argument
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
225
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
226 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
227 Counting conditions - stop after n iterations. You can do it manually now
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
228 with conditional breakpoints.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
229
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
230 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
231 Performance monitoring - summarize trace data.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
232
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
233 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
234 Preserve breakpoints across instrumenting.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
235 You can now install calls to @code{edebug} in your code.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
236
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
237 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
238 After stepping into code not previously instrumented (with
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
239 @code{edebug-step-in}), maybe restore to non-instrumented code after
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
240 entered.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
241
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
242 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
243 Optionally replace expressions with results in a separate buffer from
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
244 the source code. This idea is based on discussions with Carl Witty
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
245 regarding his stepper debugger. Also, unparse code into its own buffer
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
246 if source code is not available, or if user wishes to use
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
247 replace-with-results mode.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
248
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
249 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
250 Preserve previous bindings of local variables, and allow user to jump
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
251 back to previous frames, particularly binding frames (i.e. @code{let},
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
252 @code{condition-case}, function and macro calls) to view values at that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
253 frame. What about buffer local variables? It would be simpler to have
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
254 access to the Lisp stack.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
255
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
256 Variables display, like the evaluation list but automatically display
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
257 all local variables and values.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
258
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
259 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
260 Investigate minimal instrumentation that doesn't call edebug functions
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
261 but instead sets edebug index and result variables. Stepping is done
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
262 through standard debugger features such as setting
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
263 @code{debug-on-next-call}. Breakpoints are done by modifying code as
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
264 well as calling @code{backtrace-debug} for active frames.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
265
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
266 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
267 Edebugging of uninstrumented code. Similar to above minimal
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
268 instrumentation but find out where we are at each edebug call by looking
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
269 in a map from each list form in the code to its position.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
270 Problem is symbols are not unique.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
271
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
272 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
273 Investigate hiding debugger internal stack frames. This is both to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
274 simplify the standard debugger (which currently must be byte compiled to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
275 work) and to better support the integration of edebug and the standard
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
276 debugger.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
277
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
278 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
279 Fix Emacs' lack of stack checking. The current workaround of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
280 incrementing @code{max-lisp-eval-depth} and @code{max-specpdl-size} is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
281 unsafe.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
282
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
283 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
284 Although variables can't be tracked everywhere, watchpoints would be
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
285 nice for variables that edebug can monitor. That is, when the value of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
286 a specific variable changes, edebug would stop. This can be done now
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
287 with the @code{edebug-global-break-condition}, though it is awkward.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
288
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
289 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
290 How about a command to add the previous sexp (?) to the eval-list?
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
291
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
292 @item
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
293 Highlight all instrumented code, breakpoints, and subexpressions about
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
294 to be evaluated or just evaluated. This should be done in a way that
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
295 works with Epoch, XEmacs, and Emacs 19.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
296
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
297 @end itemize
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
298
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
299
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
300 @page
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
301 @node Index, , Bugs and Todo List, Top
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
302 @section Index
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
303
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
304 @printindex cp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
305
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
306 @comment To prevent the Concept Index's last page from being numbered "i".
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
307 @page
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
308
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
309 @contents
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
310 @bye