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