emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Emacs hangs while edebugging recentf.el


From: Stephen Berman
Subject: Emacs hangs while edebugging recentf.el
Date: Fri, 04 Nov 2005 17:38:44 +0100
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

In GNU Emacs 22.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.8.3)
 of 2005-10-26 on escher
X server distributor `The X.Org Foundation', version 11.0.60802000
configured using `configure '--with-x-toolkit=gtk''

I'm not sure if this is a real bug or some limitation in the way
edebug works.  I did the following:
1. emacs -q
2. M-x load-library RET recentf RET
3. M-x recentf-mode
4. M-: (setq recentf-list '("/home/steve/cvsroot/emacs/lisp/recentf.el" 
"/home/steve/lib/site-lisp/tabbar.el" 
"/home/steve/lib/site-lisp/tabbar.el-1.47" 
"/home/steve/lib/site-lisp/semantic.cache" 
"/home/steve/.emacs.d/semantic.cache" 
"/home/steve/cvsroot/emacs/lwlib/semantic.cache" 
"/home/steve/cvsroot/emacs/src/bitmaps/semantic.cache" 
"/home/steve/cvsroot/emacs/src/semantic.cache" 
"/usr/local/share/emacs/22.0.50/lisp/semantic.cache" 
"/home/steve/lib/site-lisp/srb-misc.el" "/home/steve/.emacs.d/tab-bar-mode.el" 
"/usr/local/share/emacs/22.0.50/lisp/simple.el" "/home/steve/doc/Emacs/FAIF/" 
"/home/steve/doc/Emacs/" "/home/steve/doc/Unix_misc/" "/home/steve/doc/" 
"/home/steve/doc/misc/" "/home/steve/cvsroot/emacs/src/systty.h" 
"/home/steve/cvsroot/emacs/src/w32heap.h"))
5. Click on File->Open Recent->Options and set Recentf Menu Filter to
recentf-arrange-by-mode for current session.
6. In the lisp source recentf.el instrument recentf-open-files for
edebug (C-u M-C-x).
7. M-x recentf-open-files
8. Step through the function until this sexp:
   (apply 'widget-create
           `(group
             :indent 2
             :format "\n%v\n"
             ,@(recentf-open-files-items (or files recentf-list))))

When ededug hits the end of this sexp, Emacs hangs and starts
consuming all available CPU cycles.  If I quickly press C-g the
hanging stops.

There are a couple of observations I have:
(a) The above value of recentf-list contains 19 files, all existing
files on my system.  When there are more files in recentf-list and I
do the above steps, Emacs hangs again -- but with 18 or fewer files,
Emacs does not hang and edebug can step through the function to
completion.
(b) It apparently is not just the length of recentf-list that causes
the hanging: using 19 non-existing files likes ("/tmp/1", ...,
"/tmp/19") does not make Emacs hang when stepping through with
edebug. 

I did the above 8 steps under gdb and when Emacs hung I stopped it and
it returned this:

Program received signal SIGTSTP, Stopped (user).
[Switching to Thread 1084223872 (LWP 13715)]
0x08162b02 in print_object (obj=145112877, printcharfun=137379857,
    escapeflag=1) at print.c:1440
1440                if (EQ (PRINT_NUMBER_OBJECT (Vprint_number_table, i), obj))

Then I pressed `s' and it returned the same thing.  Then I pressed `f'
repeatedly and it always returned the same thing:
(gdb) f
#0  0x08162b02 in print_object (obj=145112877, printcharfun=137379857,
    escapeflag=1) at print.c:1440
1440                if (EQ (PRINT_NUMBER_OBJECT (Vprint_number_table, i), obj))

Here's the xbacktrace:

(gdb) xbacktrace
"edebug-prin1-to-string"
"edebug-safe-prin1-to-string"
"edebug-compute-previous-result"
"edebug-display"
"edebug-debugger"
"edebug-after"
"save-current-buffer"
"with-current-buffer"
"recentf-dialog"
"edebug-after"
0x84e0b85 Lisp type 5
"edebug-enter"
"edebug-enter"
"recentf-open-files"
"call-interactively"
"execute-extended-command"
"call-interactively"






reply via email to

[Prev in Thread] Current Thread [Next in Thread]