Subject: bug#12579: 24.1; Emacs 24.1 / 24.2 (daily) crashes

From: Eli Zaretskii <[email-masked]>
Date: Sat, 06 Oct 2012 13:00:59 +0200

> From: "Fabrice Niessen" <[email-masked]>
> Cc: [email-masked]
> Date: Sat, 06 Oct 2012 11:31:43 +0200
> 
> Eli Zaretskii wrote:
> >> _Often_ Emacs is just blocked, and C-g can't help me. I simply have to kill
> >> Emacs from the Task Manager.
> >
> > Next time when this happens, instead of killing Emacs, attach GDB to
> > it and show us the backtrace you get in all threads.
> 
> It happened now, once again.
> 
> I attached GDB to it. Or do I have to say that I attached the process to GDB?
> 
> --8<---------------cut here---------------start------------->8---
> GNU gdb (GDB) 7.5.50.20120815-cvs (cygwin-special)
> Copyright (C) 2012 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "i686-cygwin".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Attaching to process 7368
> [New Thread 7368.0x18ec]
> [New Thread 7368.0x1878]
> [New Thread 7368.0xdb8]
> [New Thread 7368.0x1248]
> [New Thread 7368.0xfd0]
> [New Thread 7368.0x3d0]
> [New Thread 7368.0x1a04]
> [New Thread 7368.0x155c]
> Reading symbols from /cygdrive/c/Program Files/emacs-24.1/bin/emacs.exe...done.
> (gdb) continue
> Continuing.

Do NOT type "continue" at this point, if you attached GDB to Emacs
that appears to be hung.  Just "thread apply all backtrace" will do.

You do need to type "continue" when you attach GDB to Emacs that's
crashed, and see an abort dialog.  In this case, wait for the GDB
prompt after you type "continue", and _then_ type "thread apply all
backtrace".

> As you can see (?), it got no information after I typed "thread apply all
> backtrace".

Because Emacs is again running, since you gave the "continue" command,
and GDB cannot get control.

In the case where you see the abort dialog, typing "continue" stops
Emacs again when it gets a fatal signal.  But if Emacs hangs, there's
no fatal signal, so typing "continue" just lets Emacs continue its
infinite loop.

> (gdb) Can't attach to process.
> warning: File "/cygdrive/c/Program Files/Emacs-24.2/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
> ^C(gdb) Quit
> quit
> --8<---------------cut here---------------end--------------->8---
> 
> But you see I wasn't more successful... Maybe you understand what goes wrong?

It can't attach, because another instance of GDB already is attached.

> I guess that I couldn't attach twice GDB processes to Emacs. But what about
> the warning "auto-loading has been declined by your `auto-load safe-path' set
> to `$debugdir:$datadir/auto-load'"?

This is a nuisance with latest GDB versions.  I have this in my
~/.gdbinit to countermand that:

set auto-load safe-path /

> > Here's the culprit:
> >
> >> #13 0x010431b7 in die (msg=0x1537030 "assertion failed:
> >> buffer->base_buffer->indirections > 0", file=0x1535810 "buffer.c",
> 
> Do you have enough hints with that already?

No.  But someone else might.