On Sun, Oct 31, 2004 at 08:26:53PM +0100, Jan-Benedict Glaw wrote:
> System.map is a list of function start addresses. Typically, functions
> don't crash at their very first instructions, this is why you don't see
> "exact" matches.
okay.
> From my fading MIPS knowledge, ip22zilog_interrupt called
> ip22zilog_receive_chars and the later one crashed. Now, use objdump and
> create a disassembly dump of the object file that contains the IP22
> Zilog stuff. There, find the part that's 0x20 bytes away from the start
> of ip22zilog_receive_chars. Now you know the cause of this oops.
That's what I found:
8810da14: 8c82001c lw v0,28(a0)
8810da18: 00809021 move s2,a0
8810da1c: 8c510000 lw s1,0(v0)
8810da20: 00a09821 move s3,a1
8810da24: 8e220118 lw v0,280(s1)
and:
8810e224: 0e04367f jal 8810d9fc <ip22zilog_receive_chars>
8810e228: 02803021 move a2,s4
8810e22c: 0a04386e j 8810e1b8 <ip22zilog_interrupt+0xd8>
8810e230: 32020001 andi v0,s0,0x1
8810e234: 0e0437bc jal 8810def0 <ip22zilog_transmit_chars>
> From
> here, try to figure out the reason for it...
Well, I'm sure "MIPS assembly for Dummies" must be available
somewhere. While I keep looking please help me ;-)
mfg
Dennis
--
There is certainly no purpose in remaining in the dark
except long enough to clear from the mind
the illusion of ever having been in the light.
T.S. Eliot
|