I use kprobe to probe a function suppose: int is_winter(int num) { ... } int replace_is_winter(int num) { ...} I want to replace is_winter() with replace_is_winter(), so when we call is_winter, replace_is_winter will be called. so: int my_pre_handler(struct kprobe *p, struct pt_regs *regs) { regs->ip = (unsigned long)&replace_is_winter; return 1; }
and echo 0 > /proc/sys/debug/kprobes-optimization so that jump instruction will not be used. I got a exception in fault_handler, and trap number is 14. fault_handler: p->addr = 0xffffffffa08e201a, ip = ffffffff8021c59d, trap #14n Anyone here can help me ?