-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 17.09.2014 15:29, Valentin Hauner wrote: > Hi, > > was the alignment correct?
I don't know as you didn't tell us about the return value you got from malloc/memalign. > On 09/17/2014 02:53 PM, Björn Döbel wrote: >> * What is thread_stacks[thread.id]? >> > > It's the stack of that thread organized in an array, as suggested > by Adam. The stack is prefilled with data: >> thread_stacks[count][THREAD_STACK_SIZE - 1] = >> (l4_umword_t)thread->arg; thread_stacks[count][THREAD_STACK_SIZE >> - 2] = 0; > > where 'thread->arg' is some argument to pass to the thread. I was enquiring about the actual value. :) >> * What is the stack pointer you are setting at thread startup? >> > Again suggested by Adam, I'm setting thread_stacks[count][1998] as > SP: >> l4_thread_ex_regs(thread->cap, (l4_umword_t)thread->func, >> > (l4_umword_t)&thread_stacks[count][THREAD_STACK_SIZE - 2], 0); Yes, but what IS this value, numerically? >> * Is any of these addresses related to the page fault address you >> are seeing? >> > > OK, I've found out something new. In the trace buffer, I'm getting > the following entry: >> pf: 0026 pfa=0000b014 ip=01000200 (w-) spc=0xfcffae94 err=6 > > The IP points to the head of the thread function, the pfa is > &thread_stacks[count][THREAD_STACK_SIZE - 3]. But why? Maybe because your program is trying to push data onto the stack? I have no idea because you did not tell us about the actual instruction at address 0x1000200. Bjoern -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAlQZkQkACgkQP5ijxgQLUNmcYwCdGJpGJ3IcscgSu/G9qIccg5nv NxwAnj7UEOtM7cPJjceauN10m7naXjKF =nzdf -----END PGP SIGNATURE----- _______________________________________________ l4-hackers mailing list [email protected] http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
