As the documentation explains, for the syscall provider's entry probes, arg0
, arg1
etc. are the system call's arguments themselves. For syscall::read:entry
, then, looking at the read(2)
man page shows
ssize_t read(int fildes, void *buf, size_t nbyte);
and so arg0
is the value of fildes
.
Unfortunately, fds[]
doesn't appear to be described in the official documentation. fds[]
is something, similar to a subroutine, that DTrace provides to translate a file descriptor into a fileinfo_t
. The fileinfo_t
is a stable structure that provides useful information about a file without exposing the implementation details to the user.
The documentation for the io provider states that, for io:::start
, args[0]
is a pointer to a struct buf
. This is another documentation bug: it's actually a pointer to a struct bufinfo
, which is described on the same page.