[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SIGABRT while using Emacs
From: |
Alex Schroeder |
Subject: |
Re: SIGABRT while using Emacs |
Date: |
Sun, 15 Jul 2001 19:33:23 +0200 |
User-agent: |
Gnus/5.090004 (Oort Gnus v0.04) Emacs/20.7 |
Some more info. The crash can be reproduced by using the eshell-smart
module in eshell. Basically, start Emacs, evaluate the following, and
at the eshell prompt, type *as fast as possible* ls RET C-x C-f. The
key seems to be to call anything that requires the minibuffer while
eshell is still producing output. Obviously I think it still is an
Emacs bug and not an eshell bug because Emacs crashes. :)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
'(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra))))
(eshell)
Here's how I start emacs -q:
alex@snail:~ > cd /usr/local/src/emacs-20.7/src/
alex@snail:/usr/local/src/emacs-20.7/src > gdb emacs
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-suse-linux"...
DISPLAY = :0
TERM = xterm
Breakpoint 1 at 0x80981a6: file emacs.c, line 284.
Breakpoint 2 at 0x8088b12: file xterm.c, line 5335.
(gdb) run -q --no-site-file
Starting program: /usr/local/src/emacs-20.7/src/emacs -q --no-site-file
Then I evaluated the following in my *scratch* buffer:
(global-font-lock-mode 1)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(add-to-list 'load-path "~/elisp")
(require 'color-theme)
(color-theme-robin-hood)
(add-hook 'eshell-mode-hook
(lambda ()
(define-key eshell-mode-map (kbd "<up>") 'previous-line-nomark)
(define-key eshell-mode-map (kbd "<down>") 'next-line-nomark)
;; (define-key eshell-mode-map (kbd "C-d") 'eshell-maybe-exit)
(add-to-list 'eshell-ls-highlight-alist
(cons (lambda (file attr)
(string-match
"\\.\\(jpe?g\\|png\\|gif\\|fig\\|e?ps\\)$" file))
'eshell-ls-picture-face))
(add-to-list 'eshell-ls-highlight-alist
(cons (lambda (file attr)
(string-match "\\.\\(bug\\|todo\\)$" file))
'eshell-ls-todo-face))
(add-to-list 'eshell-ls-highlight-alist
(cons (lambda (file attr)
(string-match "\\.\\(html?\\|txt\\)$" file))
'eshell-ls-text-face))))
(custom-set-variables
'(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra)))
'(eshell-error-if-move-away nil)
'(eshell-rebind-keys-alist (quote (([(control 97)] . eshell-bol) ([home] .
eshell-bol) ([(control 100)] . eshell-delchar-or-maybe-eof) ([backspace] .
eshell-delete-backward-char) ([(control 119)] . backward-kill-word) ([(control
117)] . eshell-kill-input))))
'(eshell-last-dir-ring-size 10)
'(eshell-where-to-jump (quote begin))
'(eshell-confine-point-to-input nil)
'(eshell-remap-previous-input nil)
'(eshell-hist-ignoredups t)
'(eshell-review-quick-commands t)
'(eshell-ask-to-save-history (quote always)))
(eshell)
While looking at the eshell prompt, I try C-x C-f and it gives me the
prompt I am looking for in the minibuffer.
At the eshell prompt, I then type "ls" and hit RET.
I try C-x C-f again, and Emacs gets the SIGABRT.
I then started playing around, trying to see wether this is
reproducible. This is more of a log file, as I haven't found the
exact moment.
The current directory is the emacs src directory. When I evaluated
the elisp code above and did a ls, the error didn't happen.
When I evaluated the code in the scratch buffer, and hit "cd" RET "ls"
RET, and then C-x C-f, it happened. This is the contents of my home
directory:
/home/alex $ ls
#.bbdb# c64 lynx_bookmarks.html
#.newsrc-dribble# chiro.html lynx_bookmarks.html~
2001_06_16_014839_shot.png color-theme.el man
2001_06_16_015054_shot.png diary megasth.htm
2001_06_16_193139_shot.png dotion.tar.gz nsmail
2001_06_17_170355_shot.png elisp parrot-0.2.6.tgz
Desktop ell.html periplus.htm
EmacsWiki emacs.bug perllib
Mail emacs.bug~ pics
Meatball emshort-bashes-troll.txt pkginfo
NT-bookmarks.html emshort-explains-if.txt pliny.htm
News ffglass_pr.html projects
Notes gatto2.htm src
SMAIL host stow
WWW india.html strabo.htm
Wiki indiabib.htm strabo.html
XF86Config info test~
ace keshan texte
alex@snail:~ ll-fld-test.el tmp
applets ll-fld-test.el~ xhtml11.html
archive.tar.gz ll-fld-test.tex xinitrc
arrian.htm ll-fld-test.txt xsession
atlantis ll-fld-test.txt~
bin longlines.el
I then repeated the same again. I evaluated the code in the scratch
buffer, and hit "cd" RET "ls" RET, and then I waited a few seconds
before hitting C-x C-f. The error did not happen.
Repeat again and hit l s RET C-x C-f in one go, however, the error
does happen. An idle timer problem? Something related to font-lock
changing buffers on an idle timer which runs even if I'm in a mini
buffer?
I then evaluated the code in the scratch buffer, did a ls (of the
emacs source directory), then a cd (home) and then a C-x C-f and the
error did happen (without ever listing my home directory, so it
doesn't seem to be related to the files but to the "speed" of typing.
When eshell output appears, I may not type C-x C-f?
So I tried again. Evaluated the code in the scratch buffer, and at
the eshell prompt I just typed as fast as possible c d RET C-x C-f --
and the error happened.
Then I tried to reduce the amount of elisp required.
(global-font-lock-mode 1)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
'(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra)))
'(eshell-error-if-move-away nil)
'(eshell-rebind-keys-alist (quote (([(control 97)] . eshell-bol) ([home] .
eshell-bol) ([(control 100)] . eshell-delchar-or-maybe-eof) ([backspace] .
eshell-delete-backward-char) ([(control 119)] . backward-kill-word) ([(control
117)] . eshell-kill-input))))
'(eshell-last-dir-ring-size 10)
'(eshell-where-to-jump (quote begin))
'(eshell-confine-point-to-input nil)
'(eshell-remap-previous-input nil)
'(eshell-hist-ignoredups t)
'(eshell-review-quick-commands t)
'(eshell-ask-to-save-history (quote always)))
(eshell)
Sure enough, this also caused the error. At the eshell prompt I just
typed as fast as possible c d RET C-x C-f -- and the error happened.
More reducing:
(global-font-lock-mode 1)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(eshell)
Now I was unable to reproduce the error.
(global-font-lock-mode 1)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
'(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra))))
(eshell)
With this setup, eshell starts in the emacs source directory, I type
c d RET C-x C-f and no problem, but then I then add l s RET C-x C-f
the problem happens. Maybe the ls is "slow" enough? Anyway. Trying
to reduce it even more.
The default value of the modules list seems to be this:
(eshell-alias eshell-banner eshell-basic eshell-cmpl eshell-dirs
eshell-glob eshell-hist eshell-ls eshell-pred eshell-prompt
eshell-script eshell-term eshell-unix)
The only differences are eshell-smart and eshell-xtra.
Any ideas?
I did some further testing. If, after letting eshell produce some
output, I do something else involving the minibuffer, such as hitting
ESC x, the error also happens. Using the following:
(global-font-lock-mode 1)
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
'(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred
eshell-prompt eshell-script eshell-smart eshell-term eshell-unix eshell-xtra))))
(eshell)
Anyway, back to using C-x C-f. Here's without using eshell-smart and
without global-font-lock-mode (since eshell seems to switch it on,
anway).
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell-2.4.2")
(require 'eshell-auto)
(custom-set-variables
'(eshell-modules-list (quote (eshell-alias eshell-banner eshell-basic
eshell-cmpl eshell-dirs eshell-glob eshell-hist eshell-ls eshell-pred
eshell-prompt eshell-script eshell-term eshell-unix eshell-xtra))))
(eshell)
I was unable to reproduce the error.
Alex.
--
http://www.geocities.com/kensanata/
Coffee should be black as hell, strong as death and sweet as love.
-- Turkish proverb