GNU bug report logs - #18438
24.4.50; assertion failed in bidi.c

Previous Next

Package: emacs;

Reported by: aidalgol <at> amuri.net

Date: Tue, 9 Sep 2014 21:52:01 UTC

Severity: normal

Tags: moreinfo

Merged with 17817

Found in versions 24.3.91, 24.4.50

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: aidalgol <at> amuri.net
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 18438 <at> debbugs.gnu.org
Subject: bug#18438: 24.4.50; assertion failed in bidi.c
Date: Thu, 18 Sep 2014 16:55:07 +1200
On Wed, 17 Sep 2014 08:07:34 +0300, Eli Zaretskii wrote:
>
>> Dump of assembler code for function bidi_check_type:
>>     0x00000001005010c3 <+0>:     push   %rbp
>>     0x00000001005010c4 <+1>:     mov    %rsp,%rbp
>>     0x00000001005010c7 <+4>:     sub    $0x20,%rsp
>>     0x00000001005010cb <+8>:     mov    %ecx,0x10(%rbp)
>>     0x00000001005010ce <+11>:    mov    0x58ab9b(%rip),%rax        #
>> 0x100a8bc70 <.refptr.suppress_checking>
>>     0x00000001005010d5 <+18>:    movzbl (%rax),%eax
>>     0x00000001005010d8 <+21>:    xor    $0x1,%eax
>>     0x00000001005010db <+24>:    test   %al,%al
>>     0x00000001005010dd <+26>:    je     0x1005010ff 
>> <bidi_check_type+60>
>>     0x00000001005010df <+28>:    cmpl   $0x17,0x10(%rbp)
>>     0x00000001005010e3 <+32>:    jbe    0x1005010ff 
>> <bidi_check_type+60>
>>     0x00000001005010e5 <+34>:    mov    $0x149,%r8d
>>     0x00000001005010eb <+40>:    lea    0x5599de(%rip),%rdx        #
>> 0x100a5aad0 <DEFAULT_REHASH_SIZE+56>
>>     0x00000001005010f2 <+47>:    lea    0x5599df(%rip),%rcx        #
>> 0x100a5aad8 <DEFAULT_REHASH_SIZE+64>
>>     0x00000001005010f9 <+54>:    callq  0x1005b9a15 <die>
>> => 0x00000001005010fe <+59>:    nop
>>     0x00000001005010ff <+60>:    add    $0x20,%rsp
>>     0x0000000100501103 <+64>:    pop    %rbp
>>     0x0000000100501104 <+65>:    retq
>> End of assembler dump.
>
> My reading of this is:
>
>   . the value being tested is originally in ECX
>   . it is stored in a temporary local variable at RBP+0x10
>   . then it is compared with 0x17 (decimal 23)
>
> So you have two places to check: the ECX register and the value
> pointed to by RBP+0x10.

OK, I've got the first one, but what's the syntax for "value at address 
X+Y"?




This bug report was last modified 9 years and 154 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.