Subject: Re: bug#18438: 24.4.50; assertion failed in bidi.c

From: [email-masked]
Date: Wed, 24 Sep 2014 17:07:12 +1200

On Sun, 21 Sep 2014 18:30:09 -0400, Ken Brown wrote:
> On 9/18/2014 10:42 AM, Eli Zaretskii wrote:
>> So again, this is a riddle for which I have no clues.  Perhaps the
>> strange backtraces reported in bug #17753, and the discussion Ken
>> started on the Cygwin list about that, will bring some insight 
>> (e.g.,
>> is it possible that this code also runs in some other thread?).
>
> The other possibility is that the strange backtraces are due to a bug
> in gdb that has since been fixed.  PR 16155
> (https://sourceware.org/bugzilla/show_bug.cgi?id=16155) seems like a
> possible candidate for such a bug, but I haven't yet tried to verify
> this.  OP, could you update to Cygwin's gdb-7.8-2 and see if your
> backtraces start to make more sense?  The problem with gdb-7.8-1 that
> I mentioned earlier has been fixed.

Since your post, I have been running emacs under gdb-7.8-2 as you said, 
and regularly pulling from git master (and rebuilding, of course).  
Today I pulled 270b6e3 and rebuilt, and it hangs under gdb before even 
drawing the frame.  It runs fine outside gdb, so I did a clean build and 
tried again, but the same happened.

$ gdb -x .gdbinit ./emacs.exe
GNU gdb (GDB) 7.8
Copyright (C) 2014 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 "x86_64-unknown-cygwin".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./emacs.exe...done.
warning: File "/home/agauland/src/emacs/src/.gdbinit" auto-loading has 
been declined by your `auto-load safe-path' set to 
"$debugdir:$datadir/auto-load".
To enable execution of this file add
         add-auto-load-safe-path /home/agauland/src/emacs/src/.gdbinit
line to your configuration file "/home/agauland/.gdbinit".
To completely disable this security protection add
         set auto-load safe-path /
line to your configuration file "/home/agauland/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual.  E.g., run from the 
shell:
         info "(gdb)Auto-loading safe path"
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not 
from terminal]
Environment variable "DISPLAY" not defined.
TERM = xterm
Breakpoint 1 at 0x100531bd8: file emacs.c, line 361.
Temporary breakpoint 2 at 0x10055e8a8: file sysdep.c, line 915.
(gdb) run
Starting program: /home/agauland/src/emacs/src/emacs.exe
[New Thread 6856.0x1f38]
[New Thread 6856.0x1240]
[New Thread 6856.0x26c]
[New Thread 6856.0x173c]
[New Thread 6856.0x1f80]
[New Thread 6856.0x1528]
[New Thread 6856.0x15c4]

And then it just sits there.  I tried using Kyle McKay's debugbreak.c 
<https://cygwin.com/ml/cygwin/2006-06/msg00321.html> to send the emacs 
process a DebugBreak, and gdb did not respond (or not visibly, anyway).  
I was running a build of d29b3c1 under the same version of GDB, so that 
suggests that a change in Emacs may be exposing a different bug in GDB 
7.8.

Where shall I go from here?  Downgrading GDB is not an option as we 
need a backtrace from Emacs run under GDB 7.8.

Regards,
Aidan Gauland