> One more question: in this definition,
>         TRACE_1(TR_FAC_IP, TR_IP_RPUT_START, "ip_input_start: q %p", q);
> only "q" is an argument. Where does the "ip_input_start: q %p" stuff
> go? Or, what is it used?

It is no longer used. It's just a vestige of a tracing system from
bygone days.

Jon.

>
> Thanks.
>
>
> On Fri, May 30, 2008 at 7:28 PM, Jon Haslam <[EMAIL PROTECTED]> wrote:
>>> The comments at the top of sys/vtrace.h explains the background, but
>>> doesn't state in detail how to use it. In particular, what the type
>>> and the format of the arguments are.
>>>
>>> For example, to monitor this (in uts/common/inet/ip/ip.c)
>>>        TRACE_1(TR_FAC_IP, TR_IP_RPUT_START, "ip_input_start: q %p", q);
>> The digit given in the TRACE_?() macros specify how many arguments
>> are being provided, so with TRACE_1() there is 1 argument. Unfortunately,
>> the vtrace probes don't have their argument type information exported
>> so you can't use the args[] array to access them or the '-v' flag
>> to dtrace(1M). In this case you need to use the source to look at the
>> arguments and then either use the source or mdb(1) to look at the types.
>> Then you cast the arguments accordingly.
>>
>> So, with your example of vtrace:ip:ip_input:TR_IP_RPUT_START, this
>> takes a single argument of a queue_t pointer as you state. To use
>> this just do something like:
>>
>> vtrace:ip:ip_input:TR_IP_RPUT_START
>> {
>>       this->queue = (queue_t *)arg0;
>>       printf("High Water = %d\n", this->queue->q_hiwat);
>> }
>>
>> As I said, to find the definition of a queue_t, either use the
>> source or mdb:
>>
>> # mdb -k
>> Loading modules: [ unix genunix dtrace specfs ufs scsi_vhci sd isp pcisch
>> sgsbbc ip hook neti sctp arp fctl nca lofs zfs random ipc sppp cpc ptm nfs
>> fcip logindmux ]
>>> ::print -t queue_t
>> {
>>   struct qinit *q_qinfo
>>   struct msgb *q_first
>>   struct msgb *q_last
>>   struct queue *q_next
>>   struct queue *q_link
>> <chop>
>>
>> Hope this helps.
>>
>> Jon.
>>

_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to