]> git.eshelyaron.com Git - emacs.git/commitdiff
Change edebug-max-depth from defconst to defcustom
authorGemini Lasswell <gazally@runbox.com>
Sat, 4 Feb 2017 10:56:19 +0000 (12:56 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 4 Feb 2017 10:56:19 +0000 (12:56 +0200)
* lisp/emacs-lisp/edebug.el (edebug-max-depth): Add defcustom.
(Bug#24713)

* etc/NEWS: Mention edebug-max-depth.

* doc/lispref/edebug.texi (Checking Whether to Stop): Mention
edebug-max-depth and index it.  Add cross-references for
max-lisp-eval-depth and max-specpdl-size.

Co-authored-by: Eli Zaretskii <eliz@gnu.org>
doc/lispref/edebug.texi
etc/NEWS
lisp/emacs-lisp/edebug.el

index f6f73ea894766fbcafefb2a31a5d3f80cc59ab8a..da72c9b700c936bfb4571de589ee3dbc1b089957 100644 (file)
@@ -979,9 +979,13 @@ program.
 
 @itemize @bullet
 @item
-@code{max-lisp-eval-depth} and @code{max-specpdl-size} are both
-increased to reduce Edebug's impact on the stack.  You could, however,
-still run out of stack space when using Edebug.
+@vindex edebug-max-depth
+@code{max-lisp-eval-depth} (@pxref{Eval}) and @code{max-specpdl-size}
+(@pxref{Local Variables}) are both increased to reduce Edebug's impact
+on the stack.  You could, however, still run out of stack space when
+using Edebug.  You can also enlarge the value of
+@code{edebug-max-depth} if Edebug reaches the limit of recursion depth
+instrumenting code that contains very large quoted lists.
 
 @item
 The state of keyboard macro execution is saved and restored.  While
index 270f8803d537fa5a053282846307b4c454d5e14b..cbf2b70c82151cc184ff1f23e7ec1bd0667dbd9b 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -464,6 +464,11 @@ viewing HTML files and the like.
 breakpoint (e.g. with "f" and "o") by customizing the new option
 'edebug-sit-on-break'.
 
++++
+*** New customizable option 'edebug-max-depth'
+This allows to enlarge the maximum recursion depth when instrumenting
+code.
+
 ** Eshell
 
 *** 'eshell-input-filter's value is now a named function
index db54d1eeb207fc695a040927aa0a608ee0862c7b..ec0f08de35626a523e16f26cc689decdf553a217 100644 (file)
@@ -112,6 +112,18 @@ and some not, use `def-edebug-spec' to specify an `edebug-form-spec'."
   :type 'boolean
   :group 'edebug)
 
+(defcustom edebug-max-depth 150
+  "Maximum recursion depth when instrumenting code.
+This limit is intended to stop recursion if an Edebug specification
+contains an infinite loop.  When Edebug is instrumenting code
+containing very large quoted lists, it may reach this limit and give
+the error message \"Too deep - perhaps infinite loop in spec?\".
+Make this limit larger to countermand that, but you may also need to
+increase `max-lisp-eval-depth' and `max-specpdl-size'."
+  :type 'integer
+  :group 'edebug
+  :version "26.1")
+
 (defcustom edebug-save-windows t
   "If non-nil, Edebug saves and restores the window configuration.
 That takes some time, so if your program does not care what happens to
@@ -1452,7 +1464,6 @@ expressions; a `progn' form will be returned enclosing these forms."
 (defvar edebug-after-dotted-spec nil)
 
 (defvar edebug-matching-depth 0)  ;; initial value
-(defconst edebug-max-depth 150)  ;; maximum number of matching recursions.
 
 
 ;;; Failure to match