1*9fe88e55SMateusz Piotrowski.\" 2*9fe88e55SMateusz Piotrowski.\" Copyright (c) 2025 Mateusz Piotrowski <0mp@FreeBSD.org> 3*9fe88e55SMateusz Piotrowski.\" 4*9fe88e55SMateusz Piotrowski.\" SPDX-License-Identifier: BSD-2-Clause 5*9fe88e55SMateusz Piotrowski.\" 6*9fe88e55SMateusz Piotrowski.Dd November 6, 2025 7*9fe88e55SMateusz Piotrowski.Dt DTRACE_PID 4 8*9fe88e55SMateusz Piotrowski.Os 9*9fe88e55SMateusz Piotrowski.Sh NAME 10*9fe88e55SMateusz Piotrowski.Nm dtrace_pid 11*9fe88e55SMateusz Piotrowski.Nd a DTrace provider for dynamic userspace tracing based on function boundary instrumentation 12*9fe88e55SMateusz Piotrowski.Sh SYNOPSIS 13*9fe88e55SMateusz Piotrowski.Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry 14*9fe88e55SMateusz Piotrowski.\" XXX: For some reason Op renders here in bold, so use literal square 15*9fe88e55SMateusz Piotrowski.\" brackets instead. 16*9fe88e55SMateusz Piotrowski.Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&: Ns No \&[ Ns Ar offset Ns No \&] 17*9fe88e55SMateusz Piotrowski.Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return 18*9fe88e55SMateusz Piotrowski.Sh DESCRIPTION 19*9fe88e55SMateusz PiotrowskiThe 20*9fe88e55SMateusz Piotrowski.Nm pid 21*9fe88e55SMateusz Piotrowskiprovider implements userspace dynamic tracing 22*9fe88e55SMateusz Piotrowskiby instrumenting the entry and return of functions in userspace programs. 23*9fe88e55SMateusz PiotrowskiRefer to 24*9fe88e55SMateusz Piotrowski.Xr dtrace_fbt 4 25*9fe88e55SMateusz Piotrowskifor more details about function boundary instrumentation. 26*9fe88e55SMateusz Piotrowski.Pp 27*9fe88e55SMateusz PiotrowskiThe 28*9fe88e55SMateusz Piotrowski.Nm pid 29*9fe88e55SMateusz Piotrowskiprovider provides the following probes: 30*9fe88e55SMateusz Piotrowski.Bl -inset 31*9fe88e55SMateusz Piotrowski.It Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry 32*9fe88e55SMateusz Piotrowskiinstruments the entry of the 33*9fe88e55SMateusz Piotrowski.Ar function . 34*9fe88e55SMateusz Piotrowski.It Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&: Ns Op Ar offset 35*9fe88e55SMateusz Piotrowskiinstruments the instruction within the 36*9fe88e55SMateusz Piotrowski.Ar function 37*9fe88e55SMateusz Piotrowskilocated at 38*9fe88e55SMateusz Piotrowski.Ar offset 39*9fe88e55SMateusz Piotrowskibytes (expressed as a hexadecimal integer). 40*9fe88e55SMateusz Piotrowski.It Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return 41*9fe88e55SMateusz Piotrowskiinstruments the return from the 42*9fe88e55SMateusz Piotrowski.Ar function . 43*9fe88e55SMateusz Piotrowski.El 44*9fe88e55SMateusz Piotrowski.Ss Probe Arguments 45*9fe88e55SMateusz PiotrowskiThe arguments of the entry probe 46*9fe88e55SMateusz Piotrowski.Pq Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:entry 47*9fe88e55SMateusz Piotrowskiare the arguments of the traced function call. 48*9fe88e55SMateusz Piotrowski.Bl -column -offset indent "Entry Probe Argument" "Definition" 49*9fe88e55SMateusz Piotrowski.It Sy Entry Probe Argument Ta Sy Definition 50*9fe88e55SMateusz Piotrowski.It Ft uint64_t Fa arg0 Ta Function's first argument 51*9fe88e55SMateusz Piotrowski.It Ft uint64_t Fa arg1 Ta Function's second argument 52*9fe88e55SMateusz Piotrowski.It Ft uint64_t Fa arg2 Ta Function's third argument 53*9fe88e55SMateusz Piotrowski.It Fa ... Ta ... 54*9fe88e55SMateusz Piotrowski.El 55*9fe88e55SMateusz Piotrowski.Pp 56*9fe88e55SMateusz PiotrowskiThe offset probes 57*9fe88e55SMateusz Piotrowski.Pq Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&: Ns Op Ar offset 58*9fe88e55SMateusz Piotrowskido not define any arguments. 59*9fe88e55SMateusz PiotrowskiUse 60*9fe88e55SMateusz Piotrowski.Va uregs[] 61*9fe88e55SMateusz Piotrowskito inspect the registers. 62*9fe88e55SMateusz Piotrowski.Pp 63*9fe88e55SMateusz PiotrowskiThe arguments of the return probe 64*9fe88e55SMateusz Piotrowski.Pq Nm pid Ns Ar PID Ns Cm \&: Ns Ar module Ns Cm \&: Ns Ar function Ns Cm \&:return 65*9fe88e55SMateusz Piotrowskiare the program counter and the function's return value. 66*9fe88e55SMateusz Piotrowski.Bl -column -offset indent "Return Probe Argument" "Definition" 67*9fe88e55SMateusz Piotrowski.It Sy Return Probe Argument Ta Sy Definition 68*9fe88e55SMateusz Piotrowski.It Ft uint64_t Fa arg0 Ta Program counter 69*9fe88e55SMateusz Piotrowski.It Ft uint64_t Fa arg1 Ta Function's return value 70*9fe88e55SMateusz Piotrowski.El 71*9fe88e55SMateusz Piotrowski.Pp 72*9fe88e55SMateusz PiotrowskiNote that all probe arguments within the 73*9fe88e55SMateusz Piotrowski.Nm pid 74*9fe88e55SMateusz Piotrowskiprovider are of type 75*9fe88e55SMateusz Piotrowski.Ft uint64_t . 76*9fe88e55SMateusz Piotrowski.Sh SEE ALSO 77*9fe88e55SMateusz Piotrowski.Xr dtrace 1 , 78*9fe88e55SMateusz Piotrowski.Xr dtrace_fbt 4 , 79*9fe88e55SMateusz Piotrowski.Xr dtrace_kinst 4 , 80*9fe88e55SMateusz Piotrowski.Xr elf 5 , 81*9fe88e55SMateusz Piotrowski.Xr d 7 , 82*9fe88e55SMateusz Piotrowski.Xr tracing 7 83*9fe88e55SMateusz Piotrowski.Rs 84*9fe88e55SMateusz Piotrowski.%A Brendan Gregg 85*9fe88e55SMateusz Piotrowski.%A Jim Mauro 86*9fe88e55SMateusz Piotrowski.%B DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD 87*9fe88e55SMateusz Piotrowski.%I Prentice Hall 88*9fe88e55SMateusz Piotrowski.%D 2011 89*9fe88e55SMateusz Piotrowski.%U https://www.brendangregg.com/dtracebook/ 90*9fe88e55SMateusz Piotrowski.Re 91*9fe88e55SMateusz Piotrowski.Rs 92*9fe88e55SMateusz Piotrowski.%B The illumos Dynamic Tracing Guide 93*9fe88e55SMateusz Piotrowski.%O Chapter pid Provider 94*9fe88e55SMateusz Piotrowski.%D 2008 95*9fe88e55SMateusz Piotrowski.%U https://illumos.org/books/dtrace/chp-pid.html 96*9fe88e55SMateusz Piotrowski.Re 97*9fe88e55SMateusz Piotrowski.Sh AUTHORS 98*9fe88e55SMateusz PiotrowskiThis manual page was written by 99*9fe88e55SMateusz Piotrowski.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org . 100