Subject: Re: Bug 2435

From: Chong Yidong <[email-masked]>
Date: Tue, 03 Mar 2009 23:41:04 -0500

Kenichi Handa <[email-masked]> writes:

>> It doesn't happen all the time---about once every three or four
>> attempts.  Quite strange.
>
> I tried more than 10 times without crash.

Here are my specs (latest CVS, no modifications):

In GNU Emacs 23.0.91.29 (i686-pc-linux-gnu, GTK+ Version 2.14.4) of 2009-03-03 on furry
Windowing system distributor `The X.Org Foundation', version 11.0.10502000
configured using `configure  'CC=gcc' 'CFLAGS=-g''

LANG is en_US.UTF-8

I can reproduce it with `emacs -Q'.

Do you at least see the redisplay problem reported by the OP?

>> When I get the crash, simple is set to 0.
>
>> (gdb) p b
>> $4 = (unsigned char *) 0x8b927b7 ""
>> (gdb) p laststart
>> $5 = (unsigned char *) 0x8b92786 "\a\201\f"
>
> That is different in my case.  When the execution reaches
> the above code (three or four times while displaying that
> Tibetan char), laststart is always "\004\200".  Here the
> first byte \004 means `charset' OP, and that is reasonable
> because we are now handling '*' after "[...]".  
>
> But '\a' (== 7 == stop_memory) is very strange.  Please show
> me these values when simple is set to 0.

(gdb) f 2
#2  0x081a1798 in regex_compile (
    pattern=0x8356085
    "[\340\275\200-\340\275\251\340\275\252][\340\276\220-\340\276\271\340\276\272\340\276\273\340\276\274]*[\340\275\260\366\220\202\216\340\275\261\340\275\262-\340\275\275\340\276\200\340\276\201\340\276\204]*[\340\275\276\340\276\202\340\276\203\340\276\206-\340\276\213\340\274\231\340\274\265\340\274\267]*",
    size=88, syntax=3408388, bufp=0x83e3210) at regex.c:2853
2853                          ? on_failure_jump : on_failure_jump_loop;
(gdb) p bufp->buffer
$8 = (unsigned char *) 0x8b931d0 "\0169"
(gdb) p laststart
$10 = (unsigned char *) 0x8b93206 "\a\201\f"
(gdb) p bufp->buffer[0]@(b-bufp->buffer)
$11 = "\0169\000\002\002.Z\016.\000\006\001\016\006\000\002\001~\r!\000\002\002.~\004\b\000\000\000\000\000\000\377\003\022\r\000\004\b\000\000\000\000\000\000\377\003\r\360\377\002\001~\a\201\f\000\000\a\000p\017\000p\017\000\216\000\031\216\000\031q\017\000q\017\000r\017\000}\017\000\200\017\000\200\017\000\201\017\000\201\017\000\204\017\000\204\017"
(gdb) p laststart[0]@(b-laststart)
$12 = "\a\201\f\000\000\a\000p\017\000p\017\000\216\000\031\216\000\031q\017\000q\017\000r\017\000}\017\000\200\017\000\200\017\000\201\017\000\201\017\000\204\017\000\204\017"