Subject: 25.0.50; `button-at': (wrong-type-argument integer-or-marker-p nil), and *Backtrace* broken

From: Drew Adams <[email-masked]>
Date: Thu, 2 Jul 2015 12:35:24 -0700 (PDT)

Double regression, it seems.  Perhaps this has been fixed since this
build, but I cannot find a Windows binary that is more recent, so I
can't get beyond this.

1. Non-nil debug-on-error gives a _completely empty *Backtrace* buffer_,
except for the first line, which says "Debugger entered--Lisp error:
(args-out-of-range 20324)".  I've never seen that before, but I get it
consistently with this build.

2. So I tried `M-x debug-on-entry describe-function-1', to see what
went wrong.  Here's a backtrace, from using `describe-function':

Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p nil)
* get-char-property(nil button)
* button-at(nil)
* help-xref-button(1 help-function-def icicle-highlight-input-noncompletion=
 "d:/usr/drew/drews-lisp-20/icicles-fn.el")
* (save-excursion (re-search-backward "=A1=AE\\([^=A1=AE=A1=AF]+\\)=A1=AF" =
nil t) (help-xref-button 1 (quote help-function-def) function file-name))
* (save-current-buffer (set-buffer standard-output) (save-excursion (re-sea=
rch-backward "=A1=AE\\([^=A1=AE=A1=AF]+\\)=A1=AF" nil t) (help-xref-button =
1 (quote help-function-def) function file-name)))
* (progn (princ " in =A1=AE") (princ (if (eq file-name (quote C-source)) "C=
 source code" (help-fns-short-filename file-name))) (princ "=A1=AF") (save-=
current-buffer (set-buffer standard-output) (save-excursion (re-search-back=
ward "=A1=AE\\([^=A1=AE=A1=AF]+\\)=A1=AF" nil t) (help-xref-button 1 (quote=
 help-function-def) function file-name))))
* (if file-name (progn (princ " in =A1=AE") (princ (if (eq file-name (quote=
 C-source)) "C source code" (help-fns-short-filename file-name))) (princ "=
=A1=AF") (save-current-buffer (set-buffer standard-output) (save-excursion =
(re-search-backward "=A1=AE\\([^=A1=AE=A1=AF]+\\)=A1=AF" nil t) (help-xref-=
button 1 (quote help-function-def) function file-name)))))
* (if (and aliased (not (fboundp real-def))) (princ ",\nwhich is not define=
d.  Please make a bug report.") (save-current-buffer (set-buffer standard-o=
utput) (save-excursion (let ((save-match-data-internal (match-data))) (unwi=
nd-protect (progn (if (re-search-backward "alias for =A1=AE\\([^=A1=AE=A1=
=AF]+\\)=A1=AF" nil t) (progn ...))) (set-match-data save-match-data-intern=
al (quote evaporate)))))) (if file-name (progn (princ " in =A1=AE") (princ =
(if (eq file-name (quote C-source)) "C source code" (help-fns-short-filenam=
e file-name))) (princ "=A1=AF") (save-current-buffer (set-buffer standard-o=
utput) (save-excursion (re-search-backward "=A1=AE\\([^=A1=AE=A1=AF]+\\)=A1=
=AF" nil t) (help-xref-button 1 (quote help-function-def) function file-nam=
e))))) (princ ".") (save-current-buffer (set-buffer (help-buffer)) (fill-re=
gion-as-paragraph (save-excursion (goto-char pt1) (forward-line 0) (point))=
 (point))) (terpri) (terpri) (let* ((doc-raw (documentation function t)) (d=
oc (progn (and (autoloadp real-def) doc-raw help-enable-auto-load (string-m=
atch "\\([^\\]=3D\\|[^=3D]\\|\\`\\)\\\\[[{<]" doc-raw) (autoload-do-load re=
al-def)) (substitute-command-keys doc-raw)))) (help-fns--key-bindings funct=
ion) (save-current-buffer (set-buffer standard-output) (setq doc (help-fns-=
-signature function doc sig-key real-function)) (run-hook-with-args (quote =
help-fns-describe-function-functions) function) (insert "\n" (or doc "Not d=
ocumented.")))))
* (let* ((advised (and (symbolp function) (featurep (quote nadvice)) (advic=
e--p (advice--symbol-function function)))) (real-function (or (and advised =
(advice--cd*r (advice--symbol-function function))) function)) (def (if (sym=
bolp real-function) (or (symbol-function real-function) (signal (quote void=
-function) (list real-function))) real-function)) (aliased (or (symbolp def=
) (and advised (symbolp real-function)))) (real-def (cond (aliased (let ((f=
 real-function)) (while (and ... ...) (setq f ...)) f)) ((subrp def) (inter=
n (subr-name def))) (t def))) (sig-key (if (subrp def) (indirect-function r=
eal-def) real-def)) (file-name (find-lisp-object-file-name function def)) (=
pt1 (save-current-buffer (set-buffer (help-buffer)) (point))) (beg (if (and=
 (or (byte-code-function-p def) (keymapp def) (memq (car-safe def) (quote .=
..))) (stringp file-name) (help-fns--autoloaded-p function file-name)) (if =
(commandp def) "an interactive autoloaded " "an autoloaded ") (if (commandp=
 def) "an interactive " "a ")))) (princ (cond ((or (stringp def) (vectorp d=
ef)) "a keyboard macro") ((subrp def) (if (eq (quote unevalled) (cdr (subr-=
arity def))) (concat beg "special form") (concat beg "built-in function")))=
 (aliased (format "an alias for =A1=AE%s=A1=AF" real-def)) ((autoloadp def)=
 (format "%s autoloaded %s" (if (commandp def) "an interactive" "an") (if (=
eq (nth 4 def) (quote keymap)) "keymap" (if (nth 4 def) "Lisp macro" "Lisp =
function")))) ((or (eq (car-safe def) (quote macro)) (macrop function)) (co=
ncat beg "Lisp macro")) ((byte-code-function-p def) (concat beg "compiled L=
isp function")) ((eq (car-safe def) (quote lambda)) (concat beg "Lisp funct=
ion")) ((eq (car-safe def) (quote closure)) (concat beg "Lisp closure")) ((=
keymapp def) (let ((is-full nil) (elts (cdr-safe def))) (while elts (if (ch=
ar-table-p ...) (setq is-full t elts nil)) (setq elts (cdr-safe elts))) (co=
ncat beg (if is-full "keymap" "sparse keymap")))) (t ""))) (if (and aliased=
 (not (fboundp real-def))) (princ ",\nwhich is not defined.  Please make a =
bug report.") (save-current-buffer (set-buffer standard-output) (save-excur=
sion (let ((save-match-data-internal (match-data))) (unwind-protect (progn =
(if ... ...)) (set-match-data save-match-data-internal (quote evaporate))))=
)) (if file-name (progn (princ " in =A1=AE") (princ (if (eq file-name (quot=
e C-source)) "C source code" (help-fns-short-filename file-name))) (princ "=
=A1=AF") (save-current-buffer (set-buffer standard-output) (save-excursion =
(re-search-backward "=A1=AE\\([^=A1=AE=A1=AF]+\\)=A1=AF" nil t) (help-xref-=
button 1 (quote help-function-def) function file-name))))) (princ ".") (sav=
e-current-buffer (set-buffer (help-buffer)) (fill-region-as-paragraph (save=
-excursion (goto-char pt1) (forward-line 0) (point)) (point))) (terpri) (te=
rpri) (let* ((doc-raw (documentation function t)) (doc (progn (and (autoloa=
dp real-def) doc-raw help-enable-auto-load (string-match "\\([^\\]=3D\\|[^=
=3D]\\|\\`\\)\\\\[[{<]" doc-raw) (autoload-do-load real-def)) (substitute-c=
ommand-keys doc-raw)))) (help-fns--key-bindings function) (save-current-buf=
fer (set-buffer standard-output) (setq doc (help-fns--signature function do=
c sig-key real-function)) (run-hook-with-args (quote help-fns-describe-func=
tion-functions) function) (insert "\n" (or doc "Not documented."))))))
* (closure (t) (function) (let* ((advised (and (symbolp function) (featurep=
 (quote nadvice)) (advice--p (advice--symbol-function function)))) (real-fu=
nction (or (and advised (advice--cd*r (advice--symbol-function function))) =
function)) (def (if (symbolp real-function) (or (symbol-function real-funct=
ion) (signal (quote void-function) (list real-function))) real-function)) (=
aliased (or (symbolp def) (and advised (symbolp real-function)))) (real-def=
 (cond (aliased (let (...) (while ... ...) f)) ((subrp def) (intern (subr-n=
ame def))) (t def))) (sig-key (if (subrp def) (indirect-function real-def) =
real-def)) (file-name (find-lisp-object-file-name function def)) (pt1 (save=
-current-buffer (set-buffer (help-buffer)) (point))) (beg (if (and (or (byt=
e-code-function-p def) (keymapp def) (memq ... ...)) (stringp file-name) (h=
elp-fns--autoloaded-p function file-name)) (if (commandp def) "an interacti=
ve autoloaded " "an autoloaded ") (if (commandp def) "an interactive " "a "=
)))) (princ (cond ((or (stringp def) (vectorp def)) "a keyboard macro") ((s=
ubrp def) (if (eq (quote unevalled) (cdr ...)) (concat beg "special form") =
(concat beg "built-in function"))) (aliased (format "an alias for =A1=AE%s=
=A1=AF" real-def)) ((autoloadp def) (format "%s autoloaded %s" (if (command=
p def) "an interactive" "an") (if (eq ... ...) "keymap" (if ... "Lisp macro=
" "Lisp function")))) ((or (eq (car-safe def) (quote macro)) (macrop functi=
on)) (concat beg "Lisp macro")) ((byte-code-function-p def) (concat beg "co=
mpiled Lisp function")) ((eq (car-safe def) (quote lambda)) (concat beg "Li=
sp function")) ((eq (car-safe def) (quote closure)) (concat beg "Lisp closu=
re")) ((keymapp def) (let ((is-full nil) (elts ...)) (while elts (if ... ..=
.) (setq elts ...)) (concat beg (if is-full "keymap" "sparse keymap")))) (t=
 ""))) (if (and aliased (not (fboundp real-def))) (princ ",\nwhich is not d=
efined.  Please make a bug report.") (save-current-buffer (set-buffer stand=
ard-output) (save-excursion (let ((save-match-data-internal ...)) (unwind-p=
rotect (progn ...) (set-match-data save-match-data-internal ...))))) (if fi=
le-name (progn (princ " in =A1=AE") (princ (if (eq file-name ...) "C source=
 code" (help-fns-short-filename file-name))) (princ "=A1=AF") (save-current=
-buffer (set-buffer standard-output) (save-excursion (re-search-backward "=
=A1=AE\\([^=A1=AE=A1=AF]+\\)=A1=AF" nil t) (help-xref-button 1 ... function=
 file-name))))) (princ ".") (save-current-buffer (set-buffer (help-buffer))=
 (fill-region-as-paragraph (save-excursion (goto-char pt1) (forward-line 0)=
 (point)) (point))) (terpri) (terpri) (let* ((doc-raw (documentation functi=
on t)) (doc (progn (and ... doc-raw help-enable-auto-load ... ...) (substit=
ute-command-keys doc-raw)))) (help-fns--key-bindings function) (save-curren=
t-buffer (set-buffer standard-output) (setq doc (help-fns--signature functi=
on doc sig-key real-function)) (run-hook-with-args (quote help-fns-describe=
-function-functions) function) (insert "\n" (or doc "Not documented."))))))=
)(icicle-highlight-input-noncompletion)
* apply((closure (t) (function) (let* ((advised (and (symbolp function) (fe=
aturep (quote nadvice)) (advice--p (advice--symbol-function function)))) (r=
eal-function (or (and advised (advice--cd*r (advice--symbol-function functi=
on))) function)) (def (if (symbolp real-function) (or (symbol-function real=
-function) (signal (quote void-function) (list real-function))) real-functi=
on)) (aliased (or (symbolp def) (and advised (symbolp real-function)))) (re=
al-def (cond (aliased (let (...) (while ... ...) f)) ((subrp def) (intern (=
subr-name def))) (t def))) (sig-key (if (subrp def) (indirect-function real=
-def) real-def)) (file-name (find-lisp-object-file-name function def)) (pt1=
 (save-current-buffer (set-buffer (help-buffer)) (point))) (beg (if (and (o=
r (byte-code-function-p def) (keymapp def) (memq ... ...)) (stringp file-na=
me) (help-fns--autoloaded-p function file-name)) (if (commandp def) "an int=
eractive autoloaded " "an autoloaded ") (if (commandp def) "an interactive =
" "a ")))) (princ (cond ((or (stringp def) (vectorp def)) "a keyboard macro=
") ((subrp def) (if (eq (quote unevalled) (cdr ...)) (concat beg "special f=
orm") (concat beg "built-in function"))) (aliased (format "an alias for =A1=
=AE%s=A1=AF" real-def)) ((autoloadp def) (format "%s autoloaded %s" (if (co=
mmandp def) "an interactive" "an") (if (eq ... ...) "keymap" (if ... "Lisp =
macro" "Lisp function")))) ((or (eq (car-safe def) (quote macro)) (macrop f=
unction)) (concat beg "Lisp macro")) ((byte-code-function-p def) (concat be=
g "compiled Lisp function")) ((eq (car-safe def) (quote lambda)) (concat be=
g "Lisp function")) ((eq (car-safe def) (quote closure)) (concat beg "Lisp =
closure")) ((keymapp def) (let ((is-full nil) (elts ...)) (while elts (if .=
.. ...) (setq elts ...)) (concat beg (if is-full "keymap" "sparse keymap"))=
)) (t ""))) (if (and aliased (not (fboundp real-def))) (princ ",\nwhich is =
not defined.  Please make a bug report.") (save-current-buffer (set-buffer =
standard-output) (save-excursion (let ((save-match-data-internal ...)) (unw=
ind-protect (progn ...) (set-match-data save-match-data-internal ...))))) (=
if file-name (progn (princ " in =A1=AE") (princ (if (eq file-name ...) "C s=
ource code" (help-fns-short-filename file-name))) (princ "=A1=AF") (save-cu=
rrent-buffer (set-buffer standard-output) (save-excursion (re-search-backwa=
rd "=A1=AE\\([^=A1=AE=A1=AF]+\\)=A1=AF" nil t) (help-xref-button 1 ... func=
tion file-name))))) (princ ".") (save-current-buffer (set-buffer (help-buff=
er)) (fill-region-as-paragraph (save-excursion (goto-char pt1) (forward-lin=
e 0) (point)) (point))) (terpri) (terpri) (let* ((doc-raw (documentation fu=
nction t)) (doc (progn (and ... doc-raw help-enable-auto-load ... ...) (sub=
stitute-command-keys doc-raw)))) (help-fns--key-bindings function) (save-cu=
rrent-buffer (set-buffer standard-output) (setq doc (help-fns--signature fu=
nction doc sig-key real-function)) (run-hook-with-args (quote help-fns-desc=
ribe-function-functions) function) (insert "\n" (or doc "Not documented."))=
))))) icicle-highlight-input-noncompletion)
* describe-function-1(icicle-highlight-input-noncompletion)
  (progn (prin1 function) (princ " is ") (describe-function-1 function) (sa=
ve-current-buffer (set-buffer standard-output) (buffer-string)))
  (progn (progn (prin1 function) (princ " is ") (describe-function-1 functi=
on) (save-current-buffer (set-buffer standard-output) (buffer-string))))
  (setq value (progn (progn (prin1 function) (princ " is ") (describe-funct=
ion-1 function) (save-current-buffer (set-buffer standard-output) (buffer-s=
tring)))))
  (let* ((vbuffer-or-name (help-buffer)) (buffer (temp-buffer-window-setup =
vbuffer-or-name)) (standard-output buffer) window value) (setq value (progn=
 (progn (prin1 function) (princ " is ") (describe-function-1 function) (sav=
e-current-buffer (set-buffer standard-output) (buffer-string))))) (save-cur=
rent-buffer (set-buffer buffer) (setq window (temp-buffer-window-show buffe=
r nil))) (if (functionp (quote help-window-setup)) (help-window-setup windo=
w value) value))
  (let ((temp-buffer-window-setup-hook (cons (quote help-mode-setup) temp-b=
uffer-window-setup-hook)) (temp-buffer-window-show-hook (cons (quote help-m=
ode-finish) temp-buffer-window-show-hook))) (setq help-window-old-frame (se=
lected-frame)) (let* ((vbuffer-or-name (help-buffer)) (buffer (temp-buffer-=
window-setup vbuffer-or-name)) (standard-output buffer) window value) (setq=
 value (progn (progn (prin1 function) (princ " is ") (describe-function-1 f=
unction) (save-current-buffer (set-buffer standard-output) (buffer-string))=
))) (save-current-buffer (set-buffer buffer) (setq window (temp-buffer-wind=
ow-show buffer nil))) (if (functionp (quote help-window-setup)) (help-windo=
w-setup window value) value)))
  (progn (set-marker help-window-point-marker nil) (let ((temp-buffer-windo=
w-setup-hook (cons (quote help-mode-setup) temp-buffer-window-setup-hook)) =
(temp-buffer-window-show-hook (cons (quote help-mode-finish) temp-buffer-wi=
ndow-show-hook))) (setq help-window-old-frame (selected-frame)) (let* ((vbu=
ffer-or-name (help-buffer)) (buffer (temp-buffer-window-setup vbuffer-or-na=
me)) (standard-output buffer) window value) (setq value (progn (progn (prin=
1 function) (princ " is ") (describe-function-1 function) (save-current-buf=
fer (set-buffer standard-output) (buffer-string))))) (save-current-buffer (=
set-buffer buffer) (setq window (temp-buffer-window-show buffer nil))) (if =
(functionp (quote help-window-setup)) (help-window-setup window value) valu=
e))))
  (save-excursion (progn (set-marker help-window-point-marker nil) (let ((t=
emp-buffer-window-setup-hook (cons (quote help-mode-setup) temp-buffer-wind=
ow-setup-hook)) (temp-buffer-window-show-hook (cons (quote help-mode-finish=
) temp-buffer-window-show-hook))) (setq help-window-old-frame (selected-fra=
me)) (let* ((vbuffer-or-name (help-buffer)) (buffer (temp-buffer-window-set=
up vbuffer-or-name)) (standard-output buffer) window value) (setq value (pr=
ogn (progn (prin1 function) (princ " is ") (describe-function-1 function) (=
save-current-buffer ... ...)))) (save-current-buffer (set-buffer buffer) (s=
etq window (temp-buffer-window-show buffer nil))) (if (functionp (quote hel=
p-window-setup)) (help-window-setup window value) value)))))
  describe-function(icicle-highlight-input-noncompletion)

In GNU Emacs 25.0.50.1 (i686-pc-mingw32)
 of 2015-05-29 on LEG570
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=3D/mingw32 --host=3Di686-pc-mingw32
 --enable-checking=3Dyes,glyphs'