Skip to content

uretprobe

Implemented in Antinomie 0.7.0 · Syscall list

long uretprobe(void);
Number (x86-64) 335
ABI common
Kernel entry point sys_uretprobe

This is the raw kernel prototype from the pinned Linux 6.12.94 schema, not the libc wrapper.

Entered by the kernel’s user-space return probe trampoline. Programs do not call it.

The call takes no arguments.

On success: the restored rax of the interrupted code.

In an Antinomie trace the Return column and the ret filter field show the raw kernel return value. On failure that is the negative errno, for example -2 for ENOENT, not the -1 plus errno that the libc wrapper gives. syscall.errno holds the positive errno and syscall.success is false.

uretprobe(2) on man7.org

Coverage mark: Implemented. All arguments are plain values, recorded as the raw argument words at entry. There is no pointee to copy and no known gap.

Every call is recorded as an Entry record (the six argument words and the pointees copied at entry) and an Exit record (the return value and the pointees copied at exit).

  • uretprobe has no pointer argument. Its input is three words on the user stack (context.uretprobe_regs, 24 bytes), recorded at entry.

context.uretprobe_regs. When and how each is recorded: Not documented yet.

  • Result: ret, syscall.errno, syscall.success, syscall.duration_ns.
  • Argument words: none; args.0 to args.5 by position.

See Syscall Trace filter for the full syntax.

For what the capture statuses mean, see Capture statuses. For what is never recorded, see Known gaps.