bug-gnu-emacs
[Top][All Lists]
Advanced

[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)





reply via email to

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