12.1.1 Avoiding Errors

The copyin and copyinstr
subroutines cannot read from user addresses that have not yet
been touched, so even a valid address could cause an error if
the page containing that address has not yet been faulted in by
being accessed. Consider the following example:

In the example output, the application was functioning properly,
and the address in arg0 was valid, but it
referred to a page that had not yet been accessed by the
corresponding process. To resolve this issue, you would need to
wait for the kernel or an application to use the data before
tracing it.

For example, you might wait until the system call returns to
apply copyinstr, as shown here: