buserror on osx.4

Franklin Kingma franklin at fourdigits.nl
Tue Dec 19 13:40:52 MSK 2006


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>
>
> Could you do following:
>
> gdb nginx
> b ngx_time_update
> run
> si
> si
> si
> si
> si
> si
> si
> si
> si
> si
> si
> si
> si
> si
> si

(gdb) b ngx_time_update
Breakpoint 1 at 0xa6c8: file src/core/ngx_times.c, line 69.
(gdb) run
Starting program: /usr/local/nginx/sbin/nginx
Reading symbols for shared libraries . done

Breakpoint 1, ngx_time_update (sec=0, msec=0) at src/core/ngx_times.c:69
69          if (!ngx_trylock(&ngx_time_lock)) {
(gdb) si
0x0000a6cc      69          if (!ngx_trylock(&ngx_time_lock)) {
(gdb) si
0x0000a6d0      69          if (!ngx_trylock(&ngx_time_lock)) {
(gdb) si
0x0000a6d4      69          if (!ngx_trylock(&ngx_time_lock)) {
(gdb) si
0x0000a6d8      69          if (!ngx_trylock(&ngx_time_lock)) {
(gdb) si
26          __asm__ volatile (
(gdb) si
0x0000a6e0      26          __asm__ volatile (
(gdb) si
0x0000a6e4      26          __asm__ volatile (
(gdb) si
0x0000a6e8      26          __asm__ volatile (
(gdb) si
0x0000a6ec      26          __asm__ volatile (
(gdb) si
0x0000a6f0      26          __asm__ volatile (
(gdb) si
0x0000a6f4      26          __asm__ volatile (
(gdb) si
69          if (!ngx_trylock(&ngx_time_lock)) {
(gdb) si
0x0000a700      69          if (!ngx_trylock(&ngx_time_lock)) {
(gdb) si
155     }
(gdb) si
0x0000a9f0 in ngx_time_update (sec=0, msec=0) at src/core/ngx_times.c: 
155
155     }
(gdb) si
0x0000a9f4      155     }
(gdb)






More information about the nginx mailing list