check_clients (cmd/fs.d/nfs/mountd/mountd.c) has the following parameters:
static int
check_client_new(struct share *sh, struct netbuf *nb,
struct nd_hostservlist *clnames, int flavor)
And,
struct share {
char *sh_path;
char *sh_res;
char *sh_fstype;
char *sh_opts;
char *sh_descr;
};
So if I have a probe to access the first variable, I''ll have to get the
structure into memory first and then the contents of the strings. Something
like:
sh = (struct share *)copyin(arg0, sizeof(struct share));
printf("|%s|%s|%s|%s|%s\n",
(string)copyinstr((uintptr_t)sh->sh_path),
(string)copyinstr((uintptr_t)sh->sh_res),
(string)copyinstr((uintptr_t)sh->sh_fstype),
(string)copyinstr((uintptr_t)sh->sh_opts),
(string)copyinstr((uintptr_t)sh->sh_descr));
When I try this, I get messages of the form:
dtrace: error on enabled probe ID 15 (ID 40983:
pid101148:mountd:check_client:entry): invalid address (0x2e000) in action #4 at
DIF offset 16
What is this telling me?
This message posted from opensolaris.org