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

From: Eli Zaretskii <[email-masked]>
Date: Tue, 09 Oct 2012 22:23:04 +0200

> From: "Fabrice Niessen" <[email-masked]>
> Cc: [email-masked],  [email-masked],  [email-masked]
> Date: Tue, 09 Oct 2012 21:46:28 +0200
> 
> > This one we already saw.  I think it's already fixed in the
> > development sources, so either try the next development snapshot or
> > wait for the pretest of v24.3.
> 
> There is no new development snapshot on
> http://alpha.gnu.org/gnu/emacs/windows/.
> 
> The same applies for a pretest version: nothing new since August on
> http://alpha.gnu.org/gnu/emacs/pretest/windows/.
> 
> Still a bit of patience?

Yes, I meant the future snapshots.

> Sometimes (once a day, I'd say), I get errors from (Cygwin's) Bash, when
> Helm-for-files is running: I get a popup, click OK, and then Helm goes on.

What does the error message say?

> Except that I don't have a .gdbinit file for Emacs 24.1, and that
> I've the impression that only Emacs 24.1 does hang from time to
> time.

That's not necessarily a problem.  Not having a .gdbinit just means
you won't be able to use the Emacs-specific commands it defines.  For
doing the trick with 'finish' in order to find where Emacs loops, this
is not an issue.  Having a wrong .gdbinit file where you start GDB
_is_ a problem.  So only use .gdbinit with the Emacs version it
matches.

> Should I take a snapshot from Emacs 24.1 on
> http://alpha.gnu.org/gnu/emacs/windows/?  If yes, which one can I take: there
> is no version indicated there... How can I know which file is a snapshot of
> 24.1?

24.1 is the official release, so you don't need any snapshots of it.
If you want to get its .gdbinit file, download the source distribution
from ftp.gnu.org, and look in the src directory there.

> Another question: before typing finish, do I do the other sequence as well:
> 
> - (continue),
> - thread apply all backtrace, and
> - xbacktrace?

For an Emacs that is hung, no 'continue'.  And 'xbacktrace' will only
work if you have a .gdbinit for that version of Emacs.

Also, before you start with 'finish', you need to switch to the main
thread.  This is usually thread 1, so you type

  (gdb) thread 1

and then start the 'finish' dance.

To make sure thread 1 is the main thread, verify that "thread apply
all backtrace" ends with the 'main' function for thread 1, like this:

> Thread 1 (Thread 5552.0xb8c):
> #0  0x7c91120f in ntdll!DbgUiConnectToDbg () from /cygdrive/c/WINDOWS/system32/ntdll.dll
> [...]
> #58 0x01004f54 in Frecursive_edit () at keyboard.c:846
> #59 0x01002b68 in main (argc=1, argv=0xa43e18) at emacs.c:1655