kvm_uread(kd, p, ps, (char *)&arginfo,
kvm_uread(kd, p, (u_long)ps, (char *)&arginfo,
kvm_doargv(kd, kp, nchr, info)	kvm_t *kd;	const struct kinfo_proc *kp;	int nchr;	void (*info)(struct ps_strings *, u_long *, int *);{	register const struct proc *p = &kp->kp_proc;	register char **ap;	u_long addr;	int cnt;	struct ps_strings arginfo;	static struct ps_strings *ps;	if (ps == NULL) {		struct _ps_strings _ps;		int mib[2];		size_t len;		mib[0] = CTL_VM;		mib[1] = VM_PSSTRINGS;		len = sizeof(_ps);		sysctl(mib, 2, &_ps, &len, NULL, 0);		ps = (struct ps_strings *)_ps.val;	}	/*	 * Pointers are stored at the top of the user stack.	 */	if (p->p_stat == SZOMB || 	    kvm_uread(kd, p, ps, (char *)&arginfo,		      sizeof(arginfo)) != sizeof(arginfo))		return (0);	(*info)(&arginfo, &addr, &cnt);	if (cnt == 0)		return (0);	ap = kvm_argv(kd, p, addr, cnt, nchr);	/*	 * For live kernels, make sure this process didn't go away.	 */	if (ap != 0 && ISALIVE(kd) &&	    !proc_verify(kd, (u_long)kp->kp_eproc.e_paddr, p))		ap = 0;	return (ap);}