[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: segfault caused by rmail-delete-backward
From: |
Jay Pfaffman |
Subject: |
Re: segfault caused by rmail-delete-backward |
Date: |
Tue, 17 Jun 2003 14:01:26 -0700 |
On Sun, 15 Jun 2003 11:59:12 -0400, Richard Stallman <rms@gnu.org> said:
> What you need to do is recompile with debugging info if necessary,
> then debug with GDB. See etc/DEBUG for more information.
OK, you shamed me into downloading & compiling emacs 21.2. The error
is in xdisp.c, line 14291:
while (*cursor != '\n' && ++cursor != ceiling_addr)
My best guess is that the error is here, or in whatever sets ceiling.
ceiling_addr = BYTE_POS_ADDR (ceiling) + 1;
For a while I fantasized about being able to contribute a useful
patch, but I don't see that happening.
This bug causes emacs to segfault when doing an rmail-delete-backward.
It happens infrequently and is difficult to reproduce reliably. In
the 10 or so years I've been using emacs, it's the *only* time I
remember seeing emacs seg-fault--which makes this line from etc/DEBUG,
seem quite absurd:
It is a good idea to run Emacs under GDB (or some other suitable
debugger) *all the time*. Then, when Emacs crashes, you will be
able to debug the live process, not just a core dump.
Does anyone really run emacs under GDB *all the time*?! This seems
analogous to wearing a condom *all the time* regardless of whether one
might be engaged in risky behavior (and would make it rather difficult
to pee).
But I digress.
I hope that the suggestion that there is a problem with this line will
make it possible for someone who's familiar with the code to recognize
how it might be that ceiling_addr is improperly instantiated.
Thanks.
--
Jay Pfaffman pfaffman@relaxpc.com
+1-415-821-7507 (H) +1-415-812-5047 (M)