Hello Hackers,
this is a following to the thread below, but i didnt wanna occupy it so i start a new one. http://os.inf.tu-dresden.de/pipermail/l4-hackers/2014/007049.html http://os.inf.tu-dresden.de/pipermail/l4-hackers/2014/007050.html
This usually happens when you try to access an address with no memory mapped. From the address it looks like you are accessing an address right below your stack, i.e., you are exceeding L4Re's default stack size. Most likely you have a function with a large buffer on the stack or you are recursing very deeply?
Actually not. There is a tiny buffer (4096 Bytes), and one function calles itself recursively one time.
If that does not help, try increasing L4Re's default stack size for your application using the L4RE_ELF_AUX_ELEM_T macro defined in l4/re/elf_aux.h. For this, place something like this anywhere in your compilation unit:
#include <l4/re/elf_aux.h> L4RE_ELF_AUX_ELEM_T(l4re_elf_aux_mword_t, stack_size, L4RE_ELF_AUX_T_STACK_SIZE, 65536);
Didn't work. I even doubled the size. There is just a tiny difference in the Error Message, which most likely comes from the extra code.
before:
L4Re[rm]: unhandled write page fault @7ffff300 pc=15c7a8
now:
L4Re[rm]: unhandled write page fault @7ffff2e0 pc=15c7a8
you might want to use standard binutils (e.g., objdump) on your binary to find out what instruction is at the respective PC and map this to whatever function it belongs to in your code.
I only have a pc=115c7a8, but since i start from 0x01000000, i guess that right?
115c7a8: e28cca13 add ip, ip, #77824 ; 0x13000
I couldn't find an image with debug information, so i dont know what C-code this belongs to.
Thanks, ba_f