Tomei
unread,Oct 8, 2010, 2:44:06 PM10/8/10Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to android-platform
Hi,
We got a SIGILL in a dev board and it looks like JIT crashed due to
cache coherency problem. However, I am not very familiar with the JIT.
Could someone check if the code around the PC looks like valid code
pattern generated by the Dalvik JIT? Thanks a lot!
Here's the disasm from gdbjithelper. Looks like the PC points to a
valid "cmp r0, #0" Thumb instruction (CPSR T bit (bit5) is set, so we
are running in Thumb mode). Because a SIGILL is generated, it seems
very likely of an icache issue ....
0x9135 <codePC+1>: lsls r0, r0, #4
0x9137 <codePC+3>: lsls r0, r0, #4
0x9139 <codePC+5>: lsls r0, r0, #0
0x913b <codePC+7>: lsls r1, r5, #0
0x913d <codePC+9>: adds r5, #48
0x913f <codePC+11>: orrs r1, r3
0x9141 <codePC+13>: lsls r4, r1, #0
0x9143 <codePC+15>: lsls r3, r0, #4
0x9145 <codePC+17>: ldmia r0!, {r2, r4, r6, r7}
0x9147 <codePC+19>: mvns r6, r1
0x9149 <codePC+21>: ldmia r0!, {r4, r6, r7}
0x914b <codePC+23>: mvns r6, r1
0x914d <codePC+25>: ldmia r0!, {r3, r4, r6, r7}
0x914f <codePC+27>: mvns r6, r1
0x9151 <codePC+29>: lsls r0, r4, #1
0x9153 <codePC+31>: ldr r0, [r5, #4]
0x9155 <codePC+33>: cmp r0, #0 <<<<<<<< Crashing PC
0x9157 <codePC+35>: beq.n 0x918e <codePC+90>
0x9159 <codePC+37>: ldr r1, [r0, #20]
0x915b <codePC+39>: adds r0, r1, #0
Here's the logcat:
signal 4 (SIGILL), fault addr 4b520bf0
r0 4b520bef r1 43cbb8a0 r2 0000020d r3 807a13f4
r4 43cbb8a0 r5 430cbd94 r6 bee09580 r7 00000004
r8 00000000 r9 40024678 10 0000cd30 fp 00000002
ip 4d5d7008 sp bee09538 lr 00000000 pc 4b520bf0 cpsr
28000030 <<< T bit (bit 5) is set -- Thumb mode
d0 6472656767756265 d1 424e00007149f2ca
d2 0000003c00000000 d3 0068903000000000
d4 0000000000000000 d5 0000000000000000
d6 0000000100000001 d7 7149f2ca00000000
d8 43a5000043340000 d9 4214000041f00000
d10 47d649d83f000000 d11 4047800042d80002
d12 c4e006a7447a0000 d13 00000000c4e6a7b9
d14 0000000000000000 d15 0000000000000000
d16 c026000000000000 d17 c026000000000000
d18 4028000000000000 d19 0000000000000000
d20 3ff0000000000000 d21 8000000000000000
d22 c028000000000000 d23 0000000000000000
d24 bfe0000020000000 d25 bfebb67ae0000000
d26 0000000000000000 d27 bfebb67ae0000000
d28 0003bbb80003bbb8 d29 3ff0000000000000
d30 0000000000000000 d31 3ff0000000000000
scr 80000012
dalvikvm JIT unchain all for threadid=1
#00 pc 4b520bf0 /dev/ashmem/dalvik-jit-code-cache
(deleted)
#01 lr 00000000 <unknown>
code around pc:
4b520bd0 01000100 00290000 43193530 0103000c
4b520be0 43cec8d4 43cec8d0 43cec8d8 68680060
PC>>>4b520bf0 d01a2800 1c086941 68696029 68eb68aa
4b520c00 0724f2a5 d0122800 4c15c70f a20ba109
4b520c10 eabef78f e00ae012 29006cb8 6ef7dc01
code around lr:
stack:
bee094f8 0000cd30 [heap]
bee094fc 47c966c8 /dev/ashmem/mspace/dalvik-heap/2
(deleted)
bee09500 00000000
bee09504 afd10560 /system/lib/libc.so
bee09508 00000001
bee0950c 430cbbb0
bee09510 bee09580 [stack]
bee09514 8074d269 /system/lib/libdvm.so
bee09518 00000000
bee0951c 0000cd30 [heap]
bee09520 430cbb84
bee09524 8074d0ef /system/lib/libdvm.so
bee09528 43cbb8a0 /system/framework/framework.odex
bee0952c 430cbd94
bee09530 df002777
bee09534 e3a070ad
#00 bee09538 00000000
bee0953c bee09580 [stack]
bee09540 002a37f8 [heap]
bee09544 0000cd38 [heap]
bee09548 000361b0 [heap]
bee0954c 0000039c
bee09550 807a12e0 /system/lib/libdvm.so
bee09554 807a5ed8 /system/lib/libdvm.so
bee09558 bee09828 [stack]
bee0955c 80722758 /system/lib/libdvm.so
bee09560 0000cd30 [heap]
bee09564 bee09580 [stack]
bee09568 807226dc /system/lib/libdvm.so
bee0956c 00000000
bee09570 0000039c
bee09574 807215f8 /system/lib/libdvm.so
bee09578 000b6000 [heap]
bee0957c bee0957c [stack]