annotate man/lispref/edebug.texi @ 170:98a42ee61975

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