uretprobe(2)
π uretprobe β the manual page, bestie edition β¨
okay so. this is uretprobe(2), straight out of the System Calls Manual. it's a lil syscall, it's got exactly zero arguments, and it's about to make your return uprobes go brrr. let's get into it π«Ά
πΈ NAME πΈ
uretprobe β execute pending return uprobes
β¨ SYNOPSIS β¨
int uretprobe(void);
she's small. she's mighty. that's the whole signature, no cap π
π¦ DESCRIPTION π¦
so uretprobe() is the alternative to breakpoint instructions when you wanna trigger return uprobe consumers. like, instead of yeeting a breakpoint instruction in there, you just⦠call this. iconic behaviour tbh.
β οΈ but bestie, listen β calls to uretprobe() are only made from the user-space trampoline provided by the kernel. that's the only valid caller. and if you call it from literally any other place?? SIGILL. immediate. no warning, no vibes check, just signal π
π RETURN VALUE π
the return value is architecture-specific. so like⦠don't assume, okay? it depends on the architecture, periodt.
π ERRORS π
SIGILLβuretprobe()was called by a user-space program. yeah. that's the error. that's the whole list. she does not play π
π§ VERSIONS π§
the behavior varies across systems. so what happens on one machine might not be what happens on another. keep that in mind, girlies.
β STANDARDS β
None. π no POSIX, no nothing. she's built different, she's free-range, she answers to no standard.
π HISTORY π
Linux 6.11. that's when she showed up π
and here's the tea: uretprobe() was initially introduced for the x86_64 architecture, where it was shown to be faster than breakpoint traps. ate and left no crumbs fr fr. and it might be extended to other architectures β so watch this space, iykyk π
π CAVEATS π
this is the big one, bestie, read it twice:
uretprobe() exists only to allow the invocation of return uprobe consumers. it should never be called directly.
like. do not. i am begging you. do not just call this thing in your own code. she has ONE job and it is not being your little helper π
πΈ that's the whole page, babe. written up in Linux man-pages 6.20, dated 2026-02-08, and this little uretprobe(2) page is officially closed. go forth and do not call it directly π
β¨π«Ά
π¦ where this page comes from
- arch rolling: man-pages 6.20-1 Β· BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
- nixpkgs unstable: man-pages 6.20
- π the page's license: Linux-man-pages-copyleft
- Copyright 2024, Jiri Olsa <jolsa@kernel.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms