strange Bug
Martin Schröder
martin.schroeder at openlimit.com
Mon Nov 24 16:17:43 CET 2014
Am 22.11.2014 um 15:37 schrieb ba_f:
>
> Hello,
>
> well i guess we're stuck here.
>
>
> Because i can't find no 15c7a8 nor e12fff37 in myClient.
> I also checked the one shared lib myClient uses, without success.
>
>
> Maybe i do objdump the wrong files?
>
> arm-linux-gnueabihf-objdump -Dlx l4re-snapshot-2014022818/obj/l4/arm-ca/bin/arm_armv7a/l4f/myClient | less
> arm-linux-gnueabihf-objdump -Dlx l4re-snapshot-2014022818/obj/l4/arm-ca/lib/arm_armv7a/l4f/libClient.so | less
>
>
>
> But hey, JDB tells me that at 15c7a8 there is the instruction e12fff37 <=> blx r7.
> And this is exactly what i get when objdump moe. PC and opcode match.
>
> objdump -Dlx l4re-snapshot-2014022818/obj/l4/arm-ca/bin/arm_armv7a/l4f/moe | less
>
> GC_try_to_collect_inner():
> l4re-snapshot-2014022818/src/l4/pkg/boehm_gc/contrib/alloc.c:404
> 15c7a8: e12fff37 blx r7
>
>
> Sounds logic to me, that BOEHM_GC runs into the fault...
Hi ba_f,
blx r7 is a false alarm, it cannot cause this type of write page fault. Even the instruction itself makes no sense since r7 has a
value of 1.
Could you do the following: Insert a known write page fault into your client (maybe something like *(volatile int *)0x0=0xaffedead;
) and search for the pc in "objdump -d" on myClient. You can do the same with myServer. This should match and you will see opcode
causing the write page fault.
Now enter JDB and dump the instruction @pc. This does not match the opcode caused the write page fault. Check the last line of the
dump screen and you will see the reason: "dump: d<010001fc> physical".
Martin.
More information about the l4-hackers
mailing list