all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: David Kastrup <dak@gnu.org>
To: emacs-devel@gnu.org
Subject: Re: Segfault in current bzr
Date: Tue, 28 Sep 2010 00:29:20 +0200	[thread overview]
Message-ID: <87mxr2ddmn.fsf@lola.goethe.zz> (raw)
In-Reply-To: 83hbhbq6zx.fsf@gnu.org

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Lars Magne Ingebrigtsen <larsi@gnus.org>
>> Date: Mon, 27 Sep 2010 21:59:11 +0200
>> 
>> Lars Magne Ingebrigtsen <larsi@gnus.org> writes:
>> 
>> > #2  0x00000000005a5dd9 in wait_reading_process_output (
>> >     time_limit=<value optimized out>, microsecs=<value optimized out>, 
>> >     read_kbd=-1, do_display=<value optimized out>, 
>> >     wait_for_cell=<value optimized out>, wait_proc=0x0, just_wait_proc=0)
>> >     at process.c:5072
>> 
>> Which must be this code:
>> 
>> 	      FD_CLR (channel, &connect_wait_mask);
>> 	      if (--num_pending_connects < 0)
>> 		abort ();
>
> You can't really know, in an optimized build.  GCC is very good in
> collapsing multiple calls to th same function into a single call.

At least that can be avoided without letting go of optimization:
cf. C-h C-d

** When you are trying to analyze failed assertions, it will be
essential to compile Emacs either completely without optimizations or
at least (when using GCC) with the -fno-crossjumping option.  Failure
to do so may make the compiler recycle the same abort call for all
assertions in a given function, rendering the stack backtrace useless
for identifying the specific failed assertion.

> I suggest to build with -O0, and then trying to crash.  At least then
> the backtrace and the line numbers won't lie.  And you get to actually
> see the values of the variables as a bonus, instead of all those
> <value optimized out> thingies.

With -ggdb you should be getting pretty good information.  Execution
will not necessarily be in-order, but gdb will have a pretty good clue
where the values can be found when optimized away from their dedicated
stack frame location.

-- 
David Kastrup




  parent reply	other threads:[~2010-09-27 22:29 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-27 19:56 Segfault in current bzr Lars Magne Ingebrigtsen
2010-09-27 19:59 ` Lars Magne Ingebrigtsen
2010-09-27 20:09   ` Lars Magne Ingebrigtsen
2010-09-27 20:14   ` Eli Zaretskii
2010-09-27 20:27     ` Lars Magne Ingebrigtsen
2010-09-27 20:37       ` Lars Magne Ingebrigtsen
2010-09-27 20:45         ` Lars Magne Ingebrigtsen
2010-09-27 20:46       ` Jan Djärv
2010-09-27 20:54         ` Lars Magne Ingebrigtsen
2010-09-27 22:29     ` David Kastrup [this message]
2010-09-27 20:16 ` Eli Zaretskii
  -- strict thread matches above, loose matches on Subject: below --
2010-09-28 11:10 grischka
2010-09-28 16:07 ` Eli Zaretskii
2010-09-28 17:19   ` grischka
2010-09-28 17:30     ` Eli Zaretskii

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=87mxr2ddmn.fsf@lola.goethe.zz \
    --to=dak@gnu.org \
    --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.