figure 2. call graph for ip_output().

carp_send_ad_locked

div_output

dummynet_send

icmp_send

igmp_sendpkt

in_gif_output

ip_output

tcp_output

tcp_respond

tcp_twrespond

udp_output

carp_send_ad

carp_send_ad_all

div_send

dummynet_io

icmp_reflect

igmp_fasttimo

igmp_joingroup

igmp_leavegroup

tcp_ctloutput

tcp_newreno_partial_ack

tcp_sack_partialack

tcp_timer_delack

tcp_timer_persist

tcp_timer_rexmt

tcp_dropwithreset

tcp_timer_keep

tcp_twcheck

tcp_twstart

udp_send

carp_master_down_locked

carp_setrun

ip_forward

ipfw_tick

rip_output

send_packet

send_reject

syncache_respond

tcp_do_segment

carp_ictl

ip_dooptions

rip_send

phyint_send

pim_register_send_rp

ipfw_chk

_syncache_add

syncache_timer

carp_clone_create

ip_input

ipfw_init

 

the process as well as on locks. Some of the providers available on Mac OS X are shown in Table 3.

Probes are not only associated with providers but also with modules, which are the modules you want to

instrument, as well as with functions, which are also subject to observation. The name of a trace point specifies a single probe. All of these categories are put together in a DTrace script or command line to form a sort of address

that specifies what the engineer is trying to observe. The canonical form is provider:module:function:name, with an empty section indicating a wildcard. Although the two manuals from Sun are excellent references on DTrace, 6, 10

References:

Archives