[DTrace-devel] [PATCH] pid: USDT probes cannot have "-" as function name

Eugene Loh eugene.loh at oracle.com
Mon Feb 9 19:38:59 UTC 2026


Okay, but I like having some explanation like that in the commit 
message.  Anyhow,
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>

On 2/9/26 14:37, Kris Van Hees wrote:
> On Mon, Feb 09, 2026 at 02:22:11PM -0500, Eugene Loh wrote:
>> Could we have a little more explanation here?  Like, what is wrong with the
>> current behavior (which is... to complain that the probe is not found?)?
>> And should any test check the behavior?
> It is an optimization.  That is why I added it right above the test to see
> if there is a pid in the provider name.  That was also an optimization.  In
> both cases we bail if we can determine immediately that the presented probedesc
> cannot be a USDT probe.
>
>> On 2/9/26 13:35, Kris Van Hees via DTrace-devel wrote:
>>> Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
>>> ---
>>>    libdtrace/dt_pid.c | 4 ++++
>>>    1 file changed, 4 insertions(+)
>>>
>>> diff --git a/libdtrace/dt_pid.c b/libdtrace/dt_pid.c
>>> index 517b9265..ef97c8d9 100644
>>> --- a/libdtrace/dt_pid.c
>>> +++ b/libdtrace/dt_pid.c
>>> @@ -1568,6 +1568,10 @@ dt_pid_create_usdt_probes(dtrace_probedesc_t *pdp, dtrace_hdl_t *dtp)
>>>    	char *globpat = NULL;
>>>    	int err = 0, i, nmatches = 0;
>>> +	/* If the function name is "-", we're done. */
>>> +	if (pdp->fun[0] == '-' && pdp->fun[1] == '\0')
>>> +		return 0;
>>> +
>>>    	/* If it cannot end with a pid, we're done. */
>>>    	if (pdp->prv[0] != '\0') {
>>>    		char lastchar = pdp->prv[strlen(pdp->prv) - 1];



More information about the DTrace-devel mailing list