Deleted Added
full compact
SDT.9 (256281) SDT.9 (260817)
1.\" Copyright (c) 2013 Mark Johnston <markj@freebsd.org>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.

--- 8 unchanged lines hidden (view full) ---

17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
1.\" Copyright (c) 2013 Mark Johnston <markj@freebsd.org>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.

--- 8 unchanged lines hidden (view full) ---

17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD: stable/10/share/man/man9/SDT.9 254469 2013-08-17 22:06:30Z markj $
25.\" $FreeBSD: stable/10/share/man/man9/SDT.9 260817 2014-01-17 10:58:59Z avg $
26.\"
27.Dd August 17, 2013
28.Dt SDT 9
29.Os
30.Sh NAME
31.Nm SDT
32.Nd a DTrace framework for adding statically-defined tracing probes
33.Sh SYNOPSIS
34.In sys/sdt.h
35.Fn SDT_PROVIDER_DECLARE prov
36.Fn SDT_PROVIDER_DEFINE prov
37.Fn SDT_PROBE_DECLARE prov mod func name
26.\"
27.Dd August 17, 2013
28.Dt SDT 9
29.Os
30.Sh NAME
31.Nm SDT
32.Nd a DTrace framework for adding statically-defined tracing probes
33.Sh SYNOPSIS
34.In sys/sdt.h
35.Fn SDT_PROVIDER_DECLARE prov
36.Fn SDT_PROVIDER_DEFINE prov
37.Fn SDT_PROBE_DECLARE prov mod func name
38.Fn SDT_PROBE_DEFINE prov mod func name sname
39.Fn SDT_PROBE_DEFINE0 prov mod func name sname
40.Fn SDT_PROBE_DEFINE1 prov mod func name sname arg0
41.Fn SDT_PROBE_DEFINE2 prov mod func name sname arg0 arg1
42.Fn SDT_PROBE_DEFINE3 prov mod func name sname arg0 arg1 arg2
43.Fn SDT_PROBE_DEFINE4 prov mod func name sname arg0 arg1 arg2 arg3
44.Fn SDT_PROBE_DEFINE5 prov mod func name sname arg0 arg1 arg2 arg3 arg4
45.Fn SDT_PROBE_DEFINE6 prov mod func name sname arg0 arg1 arg2 arg3 arg4 arg5
46.Fn SDT_PROBE_DEFINE7 prov mod func name sname arg0 arg1 arg2 arg3 arg4 arg5 \
38.Fn SDT_PROBE_DEFINE prov mod func name
39.Fn SDT_PROBE_DEFINE0 prov mod func name
40.Fn SDT_PROBE_DEFINE1 prov mod func name arg0
41.Fn SDT_PROBE_DEFINE2 prov mod func name arg0 arg1
42.Fn SDT_PROBE_DEFINE3 prov mod func name arg0 arg1 arg2
43.Fn SDT_PROBE_DEFINE4 prov mod func name arg0 arg1 arg2 arg3
44.Fn SDT_PROBE_DEFINE5 prov mod func name arg0 arg1 arg2 arg3 arg4
45.Fn SDT_PROBE_DEFINE6 prov mod func name arg0 arg1 arg2 arg3 arg4 arg5
46.Fn SDT_PROBE_DEFINE7 prov mod func name arg0 arg1 arg2 arg3 arg4 arg5 \
47 arg6
47 arg6
48.Fn SDT_PROBE_DEFINE0_XLATE prov mod func name sname
49.Fn SDT_PROBE_DEFINE1_XLATE prov mod func name sname arg0 xarg0
50.Fn SDT_PROBE_DEFINE2_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1
51.Fn SDT_PROBE_DEFINE3_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
48.Fn SDT_PROBE_DEFINE0_XLATE prov mod func name
49.Fn SDT_PROBE_DEFINE1_XLATE prov mod func name arg0 xarg0
50.Fn SDT_PROBE_DEFINE2_XLATE prov mod func name arg0 xarg0 arg1 xarg1
51.Fn SDT_PROBE_DEFINE3_XLATE prov mod func name arg0 xarg0 arg1 xarg1 \
52 arg2 xarg2
52 arg2 xarg2
53.Fn SDT_PROBE_DEFINE4_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
53.Fn SDT_PROBE_DEFINE4_XLATE prov mod func name arg0 xarg0 arg1 xarg1 \
54 arg2 xarg2 arg3 xarg3
54 arg2 xarg2 arg3 xarg3
55.Fn SDT_PROBE_DEFINE5_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
55.Fn SDT_PROBE_DEFINE5_XLATE prov mod func name arg0 xarg0 arg1 xarg1 \
56 arg2 xarg2 arg3 xarg3 arg4 xarg4
56 arg2 xarg2 arg3 xarg3 arg4 xarg4
57.Fn SDT_PROBE_DEFINE6_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
57.Fn SDT_PROBE_DEFINE6_XLATE prov mod func name arg0 xarg0 arg1 xarg1 \
58 arg2 xarg2 arg3 xarg3 arg4 xarg4 arg5 xarg5
58 arg2 xarg2 arg3 xarg3 arg4 xarg4 arg5 xarg5
59.Fn SDT_PROBE_DEFINE7_XLATE prov mod func name sname arg0 xarg0 arg1 xarg1 \
59.Fn SDT_PROBE_DEFINE7_XLATE prov mod func name arg0 xarg0 arg1 xarg1 \
60 arg2 xarg2 arg3 xarg3 arg4 xarg4 arg5 xarg5 arg6 xarg6
61.Fn SDT_PROBE0 prov mod func name
62.Fn SDT_PROBE1 prov mod func name arg0
63.Fn SDT_PROBE2 prov mod func name arg0 arg1
64.Fn SDT_PROBE3 prov mod func name arg0 arg1 arg2
65.Fn SDT_PROBE4 prov mod func name arg0 arg1 arg2 arg3
66.Fn SDT_PROBE5 prov mod func name arg0 arg1 arg2 arg3 arg4
67.Fn SDT_PROBE6 prov mod func name arg0 arg1 arg2 arg3 arg4 arg5

--- 63 unchanged lines hidden (view full) ---

131Note that probes should not specify a module name: the module name of a probe is
132used to determine whether or not it should be destroyed when a kernel module is
133unloaded.
134See the
135.Sx BUGS
136section.
137Note in particular that probes must not be defined across multiple kernel
138modules.
60 arg2 xarg2 arg3 xarg3 arg4 xarg4 arg5 xarg5 arg6 xarg6
61.Fn SDT_PROBE0 prov mod func name
62.Fn SDT_PROBE1 prov mod func name arg0
63.Fn SDT_PROBE2 prov mod func name arg0 arg1
64.Fn SDT_PROBE3 prov mod func name arg0 arg1 arg2
65.Fn SDT_PROBE4 prov mod func name arg0 arg1 arg2 arg3
66.Fn SDT_PROBE5 prov mod func name arg0 arg1 arg2 arg3 arg4
67.Fn SDT_PROBE6 prov mod func name arg0 arg1 arg2 arg3 arg4 arg5

--- 63 unchanged lines hidden (view full) ---

131Note that probes should not specify a module name: the module name of a probe is
132used to determine whether or not it should be destroyed when a kernel module is
133unloaded.
134See the
135.Sx BUGS
136section.
137Note in particular that probes must not be defined across multiple kernel
138modules.
139The
140.Fn SDT_PROBE_DEFINE*
141macros also take an extra
142.Ar sname
143parameter.
144This is used to allow the creation of probes with names containing the
139.Pp
140If
145.Ql -
141.Ql -
146character.
147Specifically, the
142character (dash) is wanted in a probe name,
143then it should be represented as
144.Ql __
145(double underscore) in the probe
148.Ar name
146.Ar name
149argument should contain the probe name with all dashes converted to underscores,
150and the
151.Ar sname
152argument should be the probe name as it will be referenced by D scripts.
147parameter passed to various
148.Fn SDT_*
149macros,
150because of technical reasons
151(a dash is not valid in C identifiers).
153.Pp
154The
155.Fn SDT_PROBE_DEFINE*
156macros also allow programmers to declare the types of the arguments that are
157passed to probes.
158This is optional; if the argument types are omitted (through use of the
159.Fn SDT_PROBE_DEFINE
160macro), users wishing to make use of the arguments will have to manually cast

--- 149 unchanged lines hidden ---
152.Pp
153The
154.Fn SDT_PROBE_DEFINE*
155macros also allow programmers to declare the types of the arguments that are
156passed to probes.
157This is optional; if the argument types are omitted (through use of the
158.Fn SDT_PROBE_DEFINE
159macro), users wishing to make use of the arguments will have to manually cast

--- 149 unchanged lines hidden ---