Subject: bug#15575: 24.3.50; New tty menus crash Emacs

From: Jan Djärv <[email-masked]>
Date: Wed, 9 Oct 2013 20:20:33 +0200

Hello.

Values from Fedora 19:

$1 = 5056
$2 = 268
$3 = 0
$4 = (struct glyph *) 0x0
$5 = (struct glyph *) 0x2011
$6 = (struct glyph *) 0x14f4330
$7 = 5056
$8 = 268
$9 = 0
$10 = (struct glyph *) 0x0
$11 = (struct glyph *) 0x3b400
$12 = (struct glyph *) 0x3e640
$13 = 48
$14 = 5324
$15 = 0

	Jan D.

9 okt 2013 kl. 20:17 skrev Jan Djärv <[email-masked]>:

> Hello.
> 
> FWIW, I get the same crash on Fedora 19.
> 
> 	Jan D.
> 
> 9 okt 2013 kl. 19:58 skrev Jan Djärv <[email-masked]>:
> 
>> Hello.
>> 
>> 9 okt 2013 kl. 19:41 skrev Eli Zaretskii <[email-masked]>:
>> 
>>>> From: Jan Djärv <[email-masked]>
>>>> Date: Wed, 9 Oct 2013 19:05:30 +0200
>>>> 
>>>> Hello.
>>>> 
>>>> Starting emacs with -Q -nw and then press F10 gives a crash:
>>>> 
>>>> Program received signal EXC_BAD_ACCESS, Could not access memory.
>>>> Reason: KERN_INVALID_ADDRESS at address: 0x000000000002fe21
>>>> 0x00007fff8a1cb20d in memmove$VARIANT$sse3x ()
>>>> #0  0x00007fff8a1cb207 in memmove$VARIANT$sse3x ()
>>>> #1  0x00000001000484bc in deep_copy_glyph_row (to=0x10383ae00, from=0x10383c600) at /Users/jhd/src/emacs/current/src/xdisp.c:20619
>>> 
>>> Can you tell the values of the following, after stopping at line
>>> 20617 of xdisp.c:
>>> 
>>> from->used[0]
>>> from->used[1]
>>> from->used[2]
>>> from->glyphs[0]
>>> from->glyphs[1]
>>> from->glyphs[2]
>>> to->used[0]
>>> to->used[1]
>>> to->used[2]
>>> to->glyphs[0]
>>> to->glyphs[1]
>>> to->glyphs[2]
>>> sizeof(struct glyph)
>>> sum_used
>>> i
>>> 
>> 
>> (gdb) p from->used[0]
>> $1 = 30065
>> (gdb) p from->used[1]
>> $2 = 26977
>> (gbd) p from->used[2]
>> $3 = 12140
>> $4 = (struct glyph *) 0x10403bc00
>> (gdb) p from->glyphs[1]
>> $5 = (struct glyph *) 0x10403bbe8
>> (gdb) p from->glyphs[2]
>> $6 = (struct glyph *) 0x102a1f548
>> (gdb) p to->used[0]
>> $7 = 4
>> (gdb) p to->used[1]
>> $8 = 0
>> (gdb) p to->used[2]
>> $9 = 0
>> (gdb) p to->glyphs[0]
>> $10 = (struct glyph *) 0x4
>> (gdb) p to->glyphs[1]
>> $11 = (struct glyph *) 0x4
>> (gdb) p to->glyphs[2]
>> $12 = (struct glyph *) 0x4
>> (gdb) p sizeof(struct glyph)
>> $13 = 48
>> (gdb) p sum_used
>> $14 = 86334
>> (gdb) p i
>> $15 = 3969
>> 
>> These values vary if run again.   Here is another run:
>> 
>> $1 = 12346
>> $2 = 384
>> $3 = 1
>> $4 = (struct glyph *) 0x3000000000000088
>> $5 = (struct glyph *) 0x100f11e21
>> $6 = (struct glyph *) 0x10180300a
>> $7 = 12346
>> $8 = 384
>> $9 = 1
>> $10 = (struct glyph *) 0x104033e00
>> $11 = (struct glyph *) 0x1040c48e0
>> $12 = (struct glyph *) 0x1040c90e0
>> $13 = 48
>> $14 = 12731
>> $15 = 0
>> 
>> 
>> 	Jan D.
>> 
>> 
>> 
>