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
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms