On 2015-12-09 at 17:55 "'Davide Libenzi' via Akaros" <[email protected]> wrote: > I am not what Barrett was trying. I dropped a backtrace_user_ctx() in > SYS_null, called it in __epoll_wait, and I always get some trace. > It does not seem correct though, as (besides the loop - FP[i+1] == > FP[i]) it shows GLIBC as target VMA.
You're seeing a similar problem. The backtrace should end, but it keeps on going to MAX_BT_DEPTH. If you go into the actual memory at the FP, you'll see that it's not actually copying into frame[]. My example locks up due to some hacks I put in. (not sure if you're running with those or not). I replaced the copy_from_user with a memcpy, and it works. I've narrowed it down to the rep movsb, i think, but only when backtrace_user_list is called from CTRL-B (so far). If I drop a full printk in the loop in backtrace_user_list, the BT usually works properly (though with my current setup it will lock up regardless, but you can tell from the register state if it was working or not). So that's my next clue. Maybe something with the register assignment can give me a hint. The other clue is to look at things like the RFLAGS and other register state. -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
