Thanks.  Does this mean that all data used in Kernel can be accessed
directly without using copyin and copyinstr function?

I tried to trace its value with following:
printf("mp=0x%x\n",*(int *)(self->arg1));

but each time the output value is 0x0, is it right?

Thanks
Zhihui

2008/7/20, James Litchfield <[EMAIL PROTECTED]>:
>
> Isn't the second argument to kstrgetmsg a **mblk_t (i.e., a
> pointer already in the kernel address space)?
>
>> *int*
>>   7191 kstrgetmsg <http://src.opensolaris.org/source/s?refs=kstrgetmsg>(
>>   7192         *struct* vnode <
>> http://src.opensolaris.org/source/s?defs=vnode> *vp <
>> http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/streamio.c#vp
>> >,
>>   7193         mblk_t <http://src.opensolaris.org/source/s?defs=mblk_t>
>> **mctlp <http://src.opensolaris.org/source/s?defs=mctlp>,
>>   7194         *struct* uio <
>> http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/streamio.c#uio>
>> *uiop,
>>   7195         *unsigned* *char* *prip <
>> http://src.opensolaris.org/source/s?defs=prip>,
>>   7196         *int* *flagsp <
>> http://src.opensolaris.org/source/s?defs=flagsp>,
>>   7197         clock_t <http://src.opensolaris.org/source/s?defs=clock_t>
>> timout <http://src.opensolaris.org/source/s?defs=timout>,
>>   7198         rval_t <http://src.opensolaris.org/source/s?defs=rval_t>
>> *rvp <http://src.opensolaris.org/source/s?defs=rvp>)
>>
> You should be just able to do
>
>   printf("mp=0x%p\n", self->arg1);
>
> Jim Litchfield
>
> zhihui Chen wrote:
>
>> I want to check value of the in-out parameter of one function when it
>> returns, but each time dtrace will report error.
>> Following is the script, anyone can help me correct the error with it?
>> #!/usr/sbin/dtrace -s
>> #pragma D option quiet
>> #pragma D option bufsize=4m
>>
>> fbt::kstrgetmsg:entry
>> /pid==$target/
>> {
>>        self->arg1=arg1;
>> }
>>
>> fbt::kstrgetmsg:return
>> /pid==$target&&self->arg1/
>> {
>>        printf("mp=%x\n",*(uint64_t *)copyin(self->arg1,8));
>>        self->arg1=0;
>> }
>>  intel6# ./kstrgetmsg.d -c "rcp intel2-1:/test1000k ."
>> rcp: dropped connection
>> dtrace: error on enabled probe ID 2 (ID 17047:
>> fbt:genunix:kstrgetmsg:return): invalid address (0xffffff001edd9b90) in
>> action #1 at DIF offset 52
>> dtrace: error on enabled probe ID 2 (ID 17047:
>> fbt:genunix:kstrgetmsg:return): invalid address (0xffffff001edd9b90) in
>> action #1 at DIF offset 52
>> dtrace: error on enabled probe ID 2 (ID 17047:
>> fbt:genunix:kstrgetmsg:return): invalid address (0xffffff001edd9b90) in
>> action #1 at DIF offset 52
>> .......
>>
>>  Thanks
>> Zhihui
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> dtrace-discuss mailing list
>> [email protected]
>>
>>
>
>
_______________________________________________
dtrace-discuss mailing list
[email protected]

Reply via email to