Subject: Re: bug#22818: 25.1.1 Emacs.app crash ns_compute_glyph_string_overhangs

From: Alan Third <[email-masked]>
Date: Sat, 19 Nov 2016 15:51:12 +0000

On Sat, Nov 19, 2016 at 05:09:06PM +0200, Eli Zaretskii wrote:
> > Date: Sat, 19 Nov 2016 14:53:36 +0000
> > From: Alan Third <[email-masked]>
> > Cc: [email-masked], [email-masked]
> > 
> > (gdb) p s->face.id
> > $2 = 17
> > (gdb) p lface_id_to_name[17]
> > $3 = 31008
> > (gdb) xsymbol(lface_id_to_name[17])
> > $4 = (struct Lisp_Symbol *) 0x7ab8
> > Cannot access memory at address 0x7ac0
> > 
> > am I doing this wrong?
> 
> The last command should be simply "xsymbol".  Those x* commands are
> defined such that they always operate on the last result printed by
> GDB.

Thanks, unfortunately it doesn’t look any different. I’ll paste my
whole gdb session in in case you can see me doing something stupid.

breton:/Users/alan/src/emacs/emacs-25/src>gdb ../nextstep/Emacs.app/Contents/MacOS/Emacs
GNU gdb (GDB) 7.12
Copyright (C) 2016 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-apple-darwin16.1.0".
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 ../nextstep/Emacs.app/Contents/MacOS/Emacs...done.
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
DISPLAY = /private/tmp/com.apple.launchd.U7C5wbWrEt/org.macosforge.xquartz:0
TERM = xterm-256color
Breakpoint 1 at 0x100130a42: file emacs.c, line 354.
Temporary breakpoint 2 at 0x10015d86f: file sysdep.c, line 915.
(gdb) run -Q ~/test-file
Starting program: /Users/alan/src/emacs/emacs-25/nextstep/Emacs.app/Contents/MacOS/Emacs -Q ~/test-file
[New Thread 0x1403 of process 716]
warning: unhandled dyld version (15)
[New Thread 0x1207 of process 716]
[New Thread 0x1503 of process 716]
[New Thread 0x1603 of process 716]
[New Thread 0x1703 of process 716]
[New Thread 0x1803 of process 716]
[New Thread 0x1903 of process 716]
[New Thread 0x1a03 of process 716]
[New Thread 0x1b03 of process 716]

Thread 2 received signal SIGSEGV, Segmentation fault.
0x00000001002c0940 in ns_compute_glyph_string_overhangs (s=0x7fff5fbfb780)
    at nsterm.m:2681
2681	      if (EQ (font->driver->type, Qns))
(gdb) p s->face.id
$1 = 17
(gdb) p lface_id_to_name[17]
$2 = 31008
(gdb) xsymbol
$3 = (struct Lisp_Symbol *) 0x7ab8
Cannot access memory at address 0x7ac0
(gdb) 

I’ve tried building with CFLAGS set to:

-g
-g3
-gmodules

and gcc on OS X is actually CLang.
-- 
Alan Third