[coldfire-gnu-discuss] Illegal Instruction in libc?
Mouawad, Tony
Tony.Mouawad at christiedigital.com
Thu Jul 5 15:25:42 UTC 2007
I have another instance of this issue... I investigated a core dump and
found that instructions at 0x404a0524 and 0x404a0528 reference valid
data according to the dump. At the time we execute 0x404a052c, the
value in A0 should have been 0x404A2388 (pthread_thread_self) according
to the memory in the core dump. Yet the actual value in A0 at the time
we execute 0x404a052c is 0x404a2388. So, it looks like something is
going wrong with register A0. The memory referenced to set A0 is fine.
Do you have any ideas as to what could be causing this kind of symptom?
I have a core dump, would that be useful for you?
(gdb) disass 0x404a0514
Dump of assembler code for function __librt_disable_asynccancel:
0x404a0514 <__librt_disable_asynccancel+0>: linkw %fp,#0
0x404a0518 <__librt_disable_asynccancel+4>: movel %a5,%sp at -
0x404a051a <__librt_disable_asynccancel+6>: moveal #264956,%a5
0x404a0520 <__librt_disable_asynccancel+12>: lea %pc@(0x404a051c
<__librt_disable_asynccancel+8>,%a5:l),%a5
0x404a0524 <__librt_disable_asynccancel+16>: moveal %a5@(7704),%a0
0x404a0528 <__librt_disable_asynccancel+20>: moveal %a0@(140),%a0
0x404a052c <__librt_disable_asynccancel+24>: jsr %a0@
0x404a052e <__librt_disable_asynccancel+26>: moveb %fp@(11),%a0@(129)
0x404a0534 <__librt_disable_asynccancel+32>: moveal %fp@(-4),%a5
0x404a0538 <__librt_disable_asynccancel+36>: unlk %fp
0x404a053a <__librt_disable_asynccancel+38>: rts
End of assembler dump.
(gdb) info reg
d0 0x0 0
d1 0xbffffbb0 -1073742928
d2 0x0 0
d3 0xc 12
d4 0x0 0
d5 0xbf 191
d6 0x0 0
d7 0xc 12
a0 0x404a2388 0x404a2388
a1 0x0 0x0
a2 0x80228720 0x80228720
a3 0x0 0x0
a4 0x80007934 0x80007934
a5 0x404e1018 0x404e1018
fp 0xbffffb90 0xbffffb90
sp 0xbffffb88 0xbffffb88
ps 0x4 4
pc 0x404a238a 0x404a238a <skip_ws+68>
fpcontrol 0x0 0
fpstatus 0x0 0
fpiaddr 0x8 0x8
(gdb)
More information about the coldfire-gnu-discuss
mailing list