UTRACE(2) | System Calls Manual | UTRACE(2)

# NAME

`utrace` — insert user record in ktrace log

# SYNOPSIS

`#include <sys/types.h>`
`#include <sys/ktrace.h>`

int
`utrace`(const char *label, void *addr, size_t len);

# DESCRIPTION

Adds a record to the process trace with information supplied by the user. The record is identified by label and contains len bytes from memory pointed to by addr. This call only has an effect if the calling process is being traced.

# RETURN VALUES

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

# ERRORS

[`ENOSYS`]
  The currently running kernel was compiled without ktrace(2) support (option KTRACE).
[`ENAMETOOLONG`]
  The length of the label string was longer than `KTR_USER_MAXIDLEN-1`.
[`EINVAL`]
  The specified data length len was bigger than `KTR_USER_MAXLEN`.

# SEE ALSO

kdump(1), ktrace(1), ktrace(2), options(4)

# HISTORY

The `utrace`() system call first appeared in FreeBSD 2.2. It was added to OpenBSD in OpenBSD 5.4. The label argument is an extension.

February 23, 2023 | Debian