$dtrace -s sample.d -c ./a.out
dtrace: failed to compile script sample.d: line 12: copyinstr( ) argument #1 is
incompatible with prototype:
prototype: uintptr_t
argument: char *
$cat sample.d
struct xxx
{
int yyy;
int zzz;
const char *name;
};
pid$target:a.out:*sub1*:entry
{
sp = (struct xxx *) copyin (arg0, sizeof (struct xxx));
printf ("DTrace: %d %d \n", sp->yyy, sp->zzz);
printf ("DTrace: name=%s\n", copyinstr(sp->name));
exit (0);
}
>
> You've correctly copied the structure into DTrace's
> address space, but you
> didn't copy in the const char * (string). Rather than
> doing stringof() on
> sp->name, use the copyinstr() subroutine.
>
_______________________________________________
dtrace-discuss mailing list
[email protected]