ce_getarg(int arg, int aframes __unused) > > return (tf->tf_x[arg]); > > } else { > > uintptr_t p; > > - uint64_t val; > > > > p = (tf->tf_sp + (arg - 8) * sizeof(uint64_t)); > > if ((p & 7) != 0) { > > @@ -269,8 +268,7 @@ dtrace_getarg(int arg, int aframes __unused) > > cpu_core[curcpu].cpuc_dtrace_illval = p; > > return (0); > > } > > - memcpy(&val, (void *)p, sizeof(uint64_t)); > > - return (val); > > + return (p); > > Doesn’t this change from dereferencing p to returning it? Surely p > should be a uint64_t * that is dereferenced? Yes, thank you, that was a stupid mistake on my part. I reverted it for now and will fix the problem properly tomorrow.