Messages in this thread | | | From | Namhyung Kim <> | Subject | Re: [PATCHSET 00/13] tracing/uprobes: Add support for more fetch methods (v6) | Date | Wed, 06 Nov 2013 17:37:02 +0900 |
| |
On Tue, 5 Nov 2013 17:41:02 +0100, Oleg Nesterov wrote: > On 11/05, Namhyung Kim wrote: >> >> On Mon, 4 Nov 2013 19:57:54 +0100, Oleg Nesterov wrote: >> >> >> >> static void __user *get_user_vaddr(struct pt_regs *regs, unsigned long addr) >> >> { >> >> return (void __force __user *)addr + instruction_pointer(regs); >> >> } >> >> >> >> ? >> >> >> >> This should solve the problems with relocations/randomization/bss. >> >> >> >> The obvious disadvantage is that it is not easy to calculate the >> >> offset we need to pass as an argument, it depends on the probed >> >> function. >> > >> > forgot to mention... and instruction_pointer() can't work in ret-probe, >> > we need to pass the "unsigned long func" arg somehow... >> >> Hmm.. what's the value of tu->offset in this case? Does it have the >> offset of the return address or the start of the function? > > It is the offest of function. IOW, it is the same regardless of > is_ret_probe().
Ah, okay. Thanks for the info. Then yes, it'd probably better to pass the func rather than regs since it's the only info we need, right?
Thanks, Namhyung
| |