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

# NAME

`utrace` — insert user record in ktrace log

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

`#include <sys/types.h>`
`#include <sys/param.h>`
`#include <sys/time.h>`
`#include <sys/uio.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 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, a value of 0 is returned. Otherwise, a value of -1 is returned and errno is set to indicate the error.

# ERRORS

[`ENOSYS`]
  Currently running kernel was compiled without ktrace(2) support (option KTRACE).
[`EINVAL`]
  Specified data length len was bigger than `KTR_USER_MAXLEN`.

# SEE ALSO

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

# HISTORY

The `utrace`() system call first appeared in FreeBSD 2.2. It was added to NetBSD in NetBSD 1.6. The label argument is a NetBSD extension.

December 28, 2000 | NetBSD 11.0