all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: David Kastrup <dak@gnu.org>
To: dhruva <dhruvakm@gmail.com>
Cc: Dieter Deyke <deyke@yahoo.com>, Dieter Deyke <ddeyke@ptc.com>,
	emacs-devel@gnu.org
Subject: Re: CVS emacs on Windows still crashes loading bongo.el
Date: Wed, 28 May 2008 14:00:50 +0200	[thread overview]
Message-ID: <86ej7m63kd.fsf@lola.quinscape.zz> (raw)
In-Reply-To: <e3f230850805280449g12f58806n33453b9010aefbaa@mail.gmail.com> (dhruva's message of "Wed, 28 May 2008 17:19:56 +0530")

dhruva <dhruvakm@gmail.com> writes:

> Hi,
>
> On Wed, May 28, 2008 at 9:51 AM, Dieter Deyke <deyke@yahoo.com> wrote:
>>> On Tue, May 27, 2008 at 9:49 PM, Dieter Deyke <ddeyke@ptc.com> wrote:
>>>> Just compiled CVS emacs on Windows XP with mingw, started it with -Q,
>>>> then executed (load-file "bongo.el"), and got the following crash:
>
>
> I have further isolated the problem to the following call:
> (font-info (face-font 'fringe))
>
> If you start emacs and evaluate the above expression TWICE (not the
> first time), you will get that crash (call to abort()) in
> font_close_object. The objlist seems to be empty and it does not enter
> the for loop. The following statement is a call to abort and hence, it
> had to enter the loop. I am currently trying to understand the data
> structures so that I can look deeper into it.

Did you compile with -fno-crossjumping?  Because if you didn't, the
traceback is likely to show the completely wrong abort call.

I have entered a bug report in the libgcc bug tracker asking to have the
"noreturn" attribute removed from abort's definition (users can probably
do that by themselves).  While "noreturn" is technically correct for
abort, the only reason to call abort instead of exit(1) or similar is to
get a core dump for post mortem debugging (or put a breakpoint on abort
for live debugging).

But the "noreturn" attribute tells gcc that it is free to clobber stack
pointer, stack state and instruction pointer since they will not be used
anymore.  Thus "noreturn" on "abort" totally defeats the one function
abort is supposed to provide: a usable post mortem state.

It sounds suspiciously like you might be currently wasting your
debugging skills on such a useless post mortem.  -fno-crossjumping makes
this less of a problem.  At least you can then expect to look in the
right place, even though the stack state might be somewhat stale.

-- 
David Kastrup




  reply	other threads:[~2008-05-28 12:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-27 16:19 CVS emacs on Windows still crashes loading bongo.el Dieter Deyke
2008-05-28  3:58 ` dhruva
     [not found]   ` <wkk5hfkqin.fsf@yahoo.com>
2008-05-28 11:49     ` dhruva
2008-05-28 12:00       ` David Kastrup [this message]
2008-05-28 12:24         ` dhruva
2008-05-28 15:56         ` Jason Rumney
2008-05-28 16:09           ` David Kastrup
2008-05-28 12:23       ` Kenichi Handa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=86ej7m63kd.fsf@lola.quinscape.zz \
    --to=dak@gnu.org \
    --cc=ddeyke@ptc.com \
    --cc=deyke@yahoo.com \
    --cc=dhruvakm@gmail.com \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.