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 --- |