buserror on osx.4

Igor Sysoev is at rambler-co.ru
Wed Dec 20 00:20:17 MSK 2006


On Tue, 19 Dec 2006, Franklin Kingma wrote:

> On Dec 19, 2006, at 11:32 AM, Igor Sysoev wrote:
>
>> On Tue, 19 Dec 2006, Franklin Kingma wrote:
>> 
>>> (gdb) disassemble ngx_time_update
>>> Dump of assembler code for function ngx_time_update:
>>> 0x0000a6ac <ngx_time_update+0>: mflr    r0
>>> 0x0000a6b0 <ngx_time_update+4>: stmw    r25,-28(r1)
>>> 0x0000a6b4 <ngx_time_update+8>: stw     r0,8(r1)
>>> 0x0000a6b8 <ngx_time_update+12>:        stwu    r1,-208(r1)
>>> 0x0000a6bc <ngx_time_update+16>:        bcl-    20,4*cr7+so,0xa6c0 
>>> <ngx_time_update+20>
>>> 0x0000a6c0 <ngx_time_update+20>:        mflr    r31
>>> 0x0000a6c4 <ngx_time_update+24>:        mr      r30,r3
>>> 0x0000a6c8 <ngx_time_update+28>:        addis   r2,r31,5
>>> 0x0000a6cc <ngx_time_update+32>:        addi    r11,r2,3200
>>> 0x0000a6d0 <ngx_time_update+36>:        lwz     r9,3200(r2)
>>> 0x0000a6d4 <ngx_time_update+40>:        cmpwi   cr7,r9,0
>>> 0x0000a6d8 <ngx_time_update+44>:        bne-    cr7,0xa9ec 
>>> <ngx_time_update+832>
>>> 0x0000a6dc <ngx_time_update+48>:        li      r2,1
>>> 0x0000a6e0 <ngx_time_update+52>:        li      r8,0
>>> 0x0000a6e4 <ngx_time_update+56>:        lwarx   r10,0,r11
>>> 0x0000a6e8 <ngx_time_update+60>:        cmpw    r10,r9
>>> 0x0000a6ec <ngx_time_update+64>:        bne-    0xa6fc 
>>> <ngx_time_update+80>
>>> 0x0000a6f0 <ngx_time_update+68>:        stwcx.  r2,0,r11
>>> 0x0000a6f4 <ngx_time_update+72>:        bne-    0xa6fc 
>>> <ngx_time_update+80>
>>> 0x0000a6f8 <ngx_time_update+76>:        li      r8,1
>>> 0x0000a6fc <ngx_time_update+80>:        cmpwi   cr7,r8,0
>>> 0x0000a700 <ngx_time_update+84>:        beq-    cr7,0xa9ec 
>>> <ngx_time_update+832>
>>> 0x0000a704 <ngx_time_update+88>:        cmpwi   cr7,r3,0
>>> 0x0000a708 <ngx_time_update+92>:        bne-    cr7,0xa738 
>>> <ngx_time_update+140>

I could not reproduce the bug. I have tried on two Mac's and POWER5 Linux.
What Mac and CPU do you use ? Has the CPU 64-bit mode ?

Could you do following:

gdb nginx
b ngx_time_update
run

at stop:

b *0x0000a6fc

0x0000a6fc should be address of "cmpwi   cr7,r8,0" code, see
disassembled code above
then:

c

at stop:

info reg


Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list