Hi, I have managed to do few things. @Jim and @Mathew inputs were helpful. Thanks
So i have [root@vcssx247-ldm7 ~]#dtrace -lvn fbt:my_mod:msg_recv1:entry ID PROVIDER MODULE FUNCTION NAME 7090 fbt mymod msg_recv1 entry Probe Description Attributes Identifier Names: Private Data Semantics: Private Dependency Class: Unknown Argument Attributes Identifier Names: Private Data Semantics: Private Dependency Class: ISA Argument Types args[0]: mblk_t * args[1]: uint_t args[2]: uchar_t * args[3]: ulong_t And my probe then becomes: dtrace -n 'msg_recv1:entry { printf("msg_recv1: %x, %x\n", *(uchar_t*)args[0]->b_rptr, *((uchar_t*)args[0]->b_rptr + 1)); }' Now, the args[0]->b_rptr points to my custom structure pkt_hdr_t { }. Is is possible to typecast this args[0]->b_rptr to struct pkt_hdr_t * in the dtrace script for better readable access of the private structure variables instead of using offsets to b_rptr: Something like this: struct pkt_hdr_t* ppkt = (struct pkt_hdr_t*)args[0]->b_rptr; Then printf("%d\n", ppkt->member1); Regards On Wed, Sep 20, 2017 at 12:13 AM, jim mauro <jim.ma...@gmail.com> wrote: > It's been a while (2+ years), but... > > The fbt provider makes function args available at entry probes via > args[0] ... args[n]. This are typed. > > So you should be able to dereference structure members of sk_buff > doing 'args[0]->structure_member', etc, when fbt:mymod:msg_recv:entry > fires.... > > args[1] will be the link value > args[2] will be the src pointer. > > (jeez...I hope I'm remember this correctly. There was a book....). > > Thanks > Jim > > > On Tue, Sep 19, 2017 at 6:00 AM, Nayan Gadre <beejoy.na...@gmail.com> wrote: >> >> Hi, >> >> I am new to solaris dtrace debugging tool, but I have prior experience >> with Linux SystemTap. >> >> I need to debug my Solaris kernel module particularly extract the data >> in a structure passed by reference to my kernel function. >> >> msg_recv(struct sk_buff *skbp, uint_t link, uchar_t* src) >> { >> pkt_hdr_t *pkt; >> pkt = (pkt_hdr_t *)skbp->data; >> port = pkt->port; >> } >> >> I have written a systemtap script in linux to access the argument and >> extract data. >> >> How can I do this using DTRACE for solaris modules. >> >> I tried looking into the system and trying few commands, but thats all >> i know about dtrace: >> >> [root@vcssx247-ldm7 ~]#dtrace -l | grep msg_recv >> 7090 fbt mymod msg_recv1 entry >> 7091 fbt mymod msg_recv1 return >> 7548 fbt mymod msg_recv entry >> 7549 fbt mymod msg_recv return >> >> Any pointers to correct, to the point documentation would be appreciated. >> >> Thanks >> Nayan >> > > ------------------------------------------- dtrace-discuss Archives: https://www.listbox.com/member/archive/184261/=now RSS Feed: https://www.listbox.com/member/archive/rss/184261/25769126-e243886f Modify Your Subscription: https://www.listbox.com/member/?member_id=25769126&id_secret=25769126-8d47a7b2 Powered by Listbox: http://www.listbox.com