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

From: Ken Brown <[email-masked]>
Date: Wed, 24 Sep 2014 10:06:30 -0400

On 9/24/2014 1:07 AM, [email-masked] wrote:
> 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.

It works fine for me with the latest bzr revision (117936).

If you still can't get it to work, maybe you should test the emacs-24 
branch instead of the trunk.  That's much more stable, and fixing bugs 
there is more important than fixing bugs in the trunk right now.

By the way, I just got the same assertion failure in bidi.c, with a 
backtrace under gdb 7.8 (attached).  The assertion failure still doesn't 
make sense because type=STRONG_L.  But I see lots of strange values of 
"type" in frames 3 and higher.  Eli, can you make sense out of this?  I 
still have the gdb session open.

Ken