Hi,
On 09/17/2014 04:31 PM, Björn Döbel wrote:
In the end means, that your stack mapping did not succeed as intended.
OK, that helped. Indeed, some of the arguments concerning the size of the area to map were wrong. Now, there is no page fault on the stack any more.
Then, I got the following pf:
pf: 0026 pfa=affff800 ip=affff800 (r-) spc=0xfcffae94 err=4
Using objdump on my binary, I've found out that it has something to do with 'l4sys_invoke_direct'. In the end, I've mapped this address to the new task, and the page fault is gone. Is there any more elegant way to do this?
The next page fault I'm getting is this: pf: 0026 pfa=b1007f1c ip=01009980 (r-) spc=0xfcffae94 err=4 A call of addr2line on 0x01009980 gives me:
l4/pkg/uclibc/lib/uclibc/_exit.cc:14
I guess it's related with the call of exit at the end of my thread function.
void thread_func(l4_umword_t cap) { printf("Hello World!\n"); exit(0); }
If I remove that exit call, I will get a read page fault on pc=0 since the function tries to jump back to its caller, but there is no caller, so the address lying on the stack is 0.
How can I map all those library functions to my new task?
Best regards, Valentin