On 03/15/10 08:20, tester wrote:
>> fbt::door_call:entry
>> /curpsinfo->pr_dmodel == PR_MODEL_LP64/
>> {
>> printf("entry args are %lx and %lx \n", arg0,
>> , *(uint64_t *)copyin(arg1, 8));
>> }
>>
>> Nico
> 
> Thanks Nico. Since arg1 is a pointer to a struct in userland, can I use 
> ptr = *(uint32_t *)copyin(arg1, 4);
> tracemem(ptr,10);
> to dump the structure. I tried this and getting invalid address (0xfb07bc75) 
> in action #4.

If arg1 is a userland pointer to a structure, then your copyin just
copied in the first four bytes of that structure.  And your tracemem is
trying to use those first four bytes as though they were a kernel
pointer.  That's not going to work.

You might want this:

this->ptr = copyin(arg1, 10);
tracemem(this->ptr, 10);

-- 
James Carlson         42.703N 71.076W         <carls...@workingcode.com>
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to