Subject: Re: bug#17817: 24.3.91; Assertion failure in bidi.c (Cygwin-w32 build)

From: Eli Zaretskii <[email-masked]>
Date: Fri, 20 Jun 2014 21:29:57 +0300

> Date: Fri, 20 Jun 2014 12:43:14 -0400
> From: Ken Brown <[email-masked]>
> CC: [email-masked]
> 
> (gdb) disas bidi_check_type
> Dump of assembler code for function bidi_check_type:
>     0x00000001004fb4c3 <+0>:     push   %rbp
>     0x00000001004fb4c4 <+1>:     mov    %rsp,%rbp
>     0x00000001004fb4c7 <+4>:     sub    $0x20,%rsp
>     0x00000001004fb4cb <+8>:     mov    %ecx,0x10(%rbp)
>     0x00000001004fb4ce <+11>:    mov    0x56402b(%rip),%rax        # 0x100a5f500 <.refptr.suppress_checking>
>     0x00000001004fb4d5 <+18>:    movzbl (%rax),%eax
>     0x00000001004fb4d8 <+21>:    xor    $0x1,%eax
>     0x00000001004fb4db <+24>:    test   %al,%al
>     0x00000001004fb4dd <+26>:    je     0x1004fb4ff <bidi_check_type+60>
>     0x00000001004fb4df <+28>:    cmpl   $0x17,0x10(%rbp)
>     0x00000001004fb4e3 <+32>:    jbe    0x1004fb4ff <bidi_check_type+60>

So the value compared to 23 (17 hex) is at address %rbp+0x10.  What
does this display:

  (gdb) p *(bidi_type_t *)($rbp+0x10)

(or maybe you should use %rbp with 64-bit build, I don't know).