Xglamo loops and hangs (and crashed before)
Harald Koenig
koenig at tat.physik.uni-tuebingen.de
Tue Aug 26 20:16:50 CEST 2008
On Aug 26, Holger Freyther wrote:
> You should be able to install xserver-kdrive-glamo-dbg on the device to get
thanks
> the debug symbols. As for debugging... we would need to know for which
> command it is waiting to empty and which commands were executed before. We do
> not yet keep track of that... and maybe it is time to keep a small ringbuffer
> of the last used commands.. and flush it somewhere on a kill...
dump question: does the -dbg ipk really match the installed Xserver ?
at least the time stamps don't match:
root at om-gta02:~# ls -l /usr/bin/Xglamo /usr/bin/.debug/Xglamo
-rwxr-xr-x 1 root root 250059 Aug 18 08:17 /usr/bin/.debug/Xglamo
-rwxr-xr-x 1 root root 1072188 Aug 11 19:35 /usr/bin/Xglamo
but:
root at om-gta02:~# opkg list_installed | grep glamo
xserver-kdrive-glamo - 1:1.3.0.0+git2839+4067470ea4d569bae7b4161ca998645a0c9b96e7-r6 -
xserver-kdrive-glamo-dbg - 1:1.3.0.0+git2839+4067470ea4d569bae7b4161ca998645a0c9b96e7-r6 -
lots of symbols "do not work", e.g.:
(gdb) x/i WaitForSomething
No symbol "WaitForSomething" in current context.
but:
harald om > nm .debug/Xglamo | grep WaitForSomething
000ed7f8 T WaitForSomething
that symbol shows up here (0x000edd44 is within WaitForSomething()):
(gdb) where
#0 0x000f5bb8 in GetTimeInMillis ()
#1 0x000edd44 in ?? ()
or here from UpdateCurrentTimeIf():
(gdb) where
#0 0x000f5bbc in GetTimeInMillis ()
#1 0x000384a4 in ?? ()
(gdb) x UpdateCurrentTimeIf
No symbol "UpdateCurrentTimeIf" in current context.
harald om > nm Xglamo | grep UpdateCurrentTimeIf
00038488 T UpdateCurrentTimeIf
doing single-stepping I only see GetTimeInMillis() calling gettimeofday().
but from gettimeofday() stepping does not work and I only get back
to gdb at the breakpoint of GetTimeInMillis (I've tried to set breakpoints
to every text symbol in .debug/Xglamo, but I only got ~350 break points
out of 3314 symbols -- all other symbols are "unknown", strange :-(
any idea what's the problem with all those missing symbols in gdb ?
here is a full cycle of single stepping:
-------------------------------------------------------------------------------
...
Breakpoint 259, 0x000f5bb8 in GetTimeInMillis ()
6: x/i $pc 0xf5bb8 <GetTimeInMillis>: stmdb sp!, {r4, lr}
(gdb)
(gdb) si
0x000f5bbc in GetTimeInMillis ()
6: x/i $pc 0xf5bbc <GetTimeInMillis+4>: sub sp, sp, #8 ; 0x8
(gdb)
0x000f5bc0 in GetTimeInMillis ()
6: x/i $pc 0xf5bc0 <GetTimeInMillis+8>: mov r1, #0 ; 0x0
(gdb)
0x000f5bc4 in GetTimeInMillis ()
6: x/i $pc 0xf5bc4 <GetTimeInMillis+12>: mov r0, sp
(gdb)
0x000f5bc8 in GetTimeInMillis ()
6: x/i $pc 0xf5bc8 <GetTimeInMillis+16>: bl 0x12048 <gettimeofday>
(gdb)
0x00012048 in ?? ()
6: x/i $pc 0x12048 <gettimeofday>: add r12, pc, #1048576 ; 0x100000
(gdb)
0x0001204c in ?? ()
6: x/i $pc 0x1204c <gettimeofday+4>: add r12, r12, #0 ; 0x0
(gdb)
0x00012050 in ?? ()
6: x/i $pc 0x12050 <gettimeofday+8>: ldr pc, [r12, #1144]!
(gdb)
0x401f88a0 in gettimeofday () from /lib/libc.so.6
6: x/i $pc 0x401f88a0 <gettimeofday>: mov r12, r7
(gdb)
0x401f88a4 in gettimeofday () from /lib/libc.so.6
6: x/i $pc 0x401f88a4 <gettimeofday+4>: mov r7, #78 ; 0x4e
(gdb)
0x401f88a8 in gettimeofday () from /lib/libc.so.6
6: x/i $pc 0x401f88a8 <gettimeofday+8>: svc 0x00000000
(gdb)
0x401f88ac in gettimeofday () from /lib/libc.so.6
6: x/i $pc 0x401f88ac <gettimeofday+12>: mov r7, r12
(gdb)
0x401f88b0 in gettimeofday () from /lib/libc.so.6
6: x/i $pc 0x401f88b0 <gettimeofday+16>: cmn r0, #4096 ; 0x1000
(gdb)
0x401f88b4 in gettimeofday () from /lib/libc.so.6
6: x/i $pc 0x401f88b4 <gettimeofday+20>: bxcc lr
(gdb)
[ ... short delay ... ]
Breakpoint 259, 0x000f5bb8 in GetTimeInMillis ()
6: x/i $pc 0xf5bb8 <GetTimeInMillis>: stmdb sp!, {r4, lr}
(gdb)
0x000f5bbc in GetTimeInMillis ()
6: x/i $pc 0xf5bbc <GetTimeInMillis+4>: sub sp, sp, #8 ; 0x8
(gdb)
-------------------------------------------------------------------------------
final info: unfortuneately Xglamo crashed within gdb, so no more testing with this instance, sorry.
but still I'd like to unterstand those symbol issues etc. to be prepared for the next problem...
the final words of there Xserver were:
root at om-gta02:~# tail /var/volatile/tmp/x.log
...
End listing directory: /home/root/.e/e/appshadow
........
xinit: X server slow to shut down, sending KILL signal.
if you can provide a Xglamo image with some additional debug hooks and
command ring buffer etc. I'm happy to use/test it just in case...
thanks for your help!
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