Xglamo loops and hangs (and crashed before)

Harald Koenig koenig at tat.physik.uni-tuebingen.de
Tue Aug 26 17:20:52 CEST 2008


On Aug 26, Holger Freyther wrote:

> > Xglamo sucks cpu time and doesn't accept new xclients, they just hang.
> > this is the tail of "ps uaxOT" output:
> 
> (and top would be the better utility to see what sucks your cpu...)

of course I used top to monitor it -- but the nice dynamic output of top
doesn't really fit into a static email (and I don't want to include a mpeg movie ;-))

voila:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
 3768 root      19  -1 14280 4448  448 R 95.7  3.6 259:56.42 Xglamo  
 8169 root      20   0  2252 1108  884 R  3.7  0.9   0:00.56 top     
 5598 root      20   0  2400  620  316 S  0.3  0.5   1:43.87 dropbear
...

> https://docs.openmoko.org/trac/ticket/1315
> 
> if you find a way to reproduce this with up to five minutes of usage that 
> would be very welcome.

seems to be difficult, since it happend to be for the first time now (fortuneately;).

is there a reasonable way to debug the Xglamo ? I still keep it running/looping
to get more information what's going on...

[where] can I get debug info for that Xglamo binary ?


I tried to attach gdb to Xglamo and single step it a bit


-------------------------------------------------------------------------------
0x00014ee8 in ?? ()
(gdb) where
#0  0x00014ee8 in ?? ()
(gdb) disp/i $pc
1: x/i $pc  0x14ee8 <shmget+10460>:     and     r1, r12, r7
(gdb) si
0x00014eec in ?? ()
1: x/i $pc  0x14eec <shmget+10464>:     cmp     r1, r6
(gdb) 
0x00014ef0 in ?? ()
1: x/i $pc  0x14ef0 <shmget+10468>:     beq     0x14f40 <shmget+10548>
(gdb) 
0x00014ef4 in ?? ()
1: x/i $pc  0x14ef4 <shmget+10472>:     mov     r1, #0  ; 0x0
(gdb) 
0x00014ef8 in ?? ()
1: x/i $pc  0x14ef8 <shmget+10476>:     mov     r0, sp
(gdb) 
0x00014efc in ?? ()
1: x/i $pc  0x14efc <shmget+10480>:     bl      0x12048 <gettimeofday>
(gdb) 
0x00012048 in ?? ()
1: x/i $pc  0x12048 <gettimeofday>:     add     r12, pc, #1048576       ; 0x100000
(gdb) 
0x0001204c in ?? ()
1: x/i $pc  0x1204c <gettimeofday+4>:   add     r12, r12, #0    ; 0x0
(gdb) 
0x00012050 in ?? ()
1: x/i $pc  0x12050 <gettimeofday+8>:   ldr     pc, [r12, #1144]!
(gdb) 
0x401f88a0 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88a0 <gettimeofday>:  mov     r12, r7
(gdb) 
0x401f88a4 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88a4 <gettimeofday+4>:        mov     r7, #78 ; 0x4e
(gdb) 
0x401f88a8 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88a8 <gettimeofday+8>:        svc     0x00000000
(gdb) 
0x401f88ac in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88ac <gettimeofday+12>:       mov     r7, r12
(gdb) 
0x401f88b0 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88b0 <gettimeofday+16>:       cmn     r0, #4096       ; 0x1000
(gdb) 
0x401f88b4 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88b4 <gettimeofday+20>:       bxcc    lr
(gdb) 

[ gdb hangs and "wait" for CTRL-C :-[

Program received signal SIGINT, Interrupt.
0x401f88ac in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88ac <gettimeofday+12>:       mov     r7, r12
(gdb) si
0x401f88b0 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88b0 <gettimeofday+16>:       cmn     r0, #4096       ; 0x1000
(gdb) 
0x401f88b4 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88b4 <gettimeofday+20>:       bxcc    lr
(gdb) 

Program received signal SIGINT, Interrupt.
0x401f88ac in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88ac <gettimeofday+12>:       mov     r7, r12
(gdb) si
0x401f88b0 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88b0 <gettimeofday+16>:       cmn     r0, #4096       ; 0x1000
(gdb) 
0x401f88b4 in gettimeofday () from /lib/libc.so.6
1: x/i $pc  0x401f88b4 <gettimeofday+20>:       bxcc    lr
(gdb) 

Program received signal SIGINT, Interrupt.
0x401f88ac in gettimeofday () from /lib/libc.so.6

-------------------------------------------------------------------------------

this hang in gettimeofday matches the $PC address which "strace -i" showed.

how can I do instruction stepping (si) in gdb on OM ?

any other suggestion how to analyze Xglamo ?



thanks for any hint!

Harald
-- 
"I hope to die                                      ___       _____
before I *have* to use Microsoft Word.",           0--,|    /OOOOOOO\
Donald E. Knuth, 02-Oct-2001 in Tuebingen.        <_/  /  /OOOOOOOOOOO\
                                                    \  \/OOOOOOOOOOOOOOO\
                                                      \ OOOOOOOOOOOOOOOOO|//
                                                       \/\/\/\/\/\/\/\/\/
Harald Koenig                                           //  /     \\  \
koenig at tat.physik.uni-tuebingen.de                     ^^^^^       ^^^^^



More information about the devel mailing list