register_fprobe_ips(9)
π register_fprobe_ips β Kernel API Manual, section 9 π
okay so bestie, welcome to register_fprobe_ips(9) β the page that's gonna teach you how to register an fprobe to ftrace by address. yes, address. not symbol. we're being specific today. β¨
πΈ SYNOPSIS πΈ
int register_fprobe_ips (struct fprobe *fp , unsigned long *addrs , int num );
that's it. that's the whole vibe check. three args, one int coming back at you. π«Ά
π ARGUMENTS π
fpβ thefprobedata structure you want to get registered. your little probe baby. π₯Ίaddrsβ an array of target function addresses. plural, because yes, you're doing multiple.numβ the number of entries inaddrs. like, how many addresses you actually put in there. don't lie to it.
π¦ DESCRIPTION π¦
so what this does is: it registers fp to ftrace so that the probe gets enabled on the addresses you handed over in addrs. simple enough, right? but β and this is the part where you need to pay attention, bestie β those addrs must be the addresses of the ftrace location address, which may be the symbol address + an arch-dependent offset. yes, arch-dependent. meaning it changes per architecture. iykyk. π
π¨ if you're sitting here like "wait, i'm not sure what that means" β same, no judgment β then the manpage has a direct instruction for you: please use other registration functions. do not pass go. do not collect $200. go use the other ones. π
it returns 0 if fp got registered successfully, and -errno if it did not. so like, zero is the slay outcome. negative errno is the not-slaying outcome. check it. π₯
π SEE ALSO π
go look at the kernel file ./kernel/trace/fprobe.c, and also these fellow icons:
β little sign-off β
this page lives in ./kernel/trace, dated October 2026, and it's register_fprobe_ips(9) from the Kernel API Manual β go register some probes responsibly, bestie. mwah. ππ§π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms