[Bug 261999] [dtruss] dtrace: invalid probe specifier => lstat* not found

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 16 Feb 2022 20:16:14 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=261999

            Bug ID: 261999
           Summary: [dtruss] dtrace: invalid probe specifier => lstat* not
                    found
           Product: Base System
           Version: 12.3-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: bugs@FreeBSD.org
          Reporter: joerg@FreeBSD.org

Plain dtruss(1) on FreeBSD 12.3-stable gives:

# dtruss ls
dtrace: invalid probe specifier 
#pragma D option quiet
#pragma D option switchrate=10

/*
 * Command line arguments
 */
inline int OPT_command   = 1;
inline int OPT_follow    = 0;
inline int OPT_printid   = 0;
inline int OPT_relative  = 0;
inline int OPT_elapsed   = 0;
inline int OPT_cpu       = 0;
inline int OPT_counts    = 0;
inline int OPT_pid       = 0;
inline int OPT_name      = 0;
inline int OPT_trace     = 0;
inline int OPT_stack     = 0;
inline string NAME       = ".";
inline string TRACE      = ".";
…
/* print 3 args, arg0 as a string */
syscall::access*:return,
syscall::stat*:return, 
syscall::lstat*:return, 
syscall::readlink*:return,
syscall::open*:return
/self->start/
{
…

When I run it with DTRACE_DEBUG, I see

…
libdtrace DEBUG: set context to syscall::access*:return [0] prp=0x0
attr=[u/u/c] argc=0
libdtrace DEBUG: set label to <action list>
libdtrace DEBUG: set label to <NULL>
libdtrace DEBUG: set label to <predicate>
libdtrace DEBUG: set label to <NULL>
libdtrace DEBUG: set context to syscall::stat*:return [0] prp=0x0 attr=[u/u/c]
argc=0
libdtrace DEBUG: set label to <action list>
libdtrace DEBUG: set label to <NULL>
libdtrace DEBUG: set label to <predicate>
libdtrace DEBUG: set label to <NULL>
dtrace: invalid probe specifier 
…

So apparently, the last correctly parsed probe specifier is
"syscall::stat*:return", then it bails out.

Removing the "syscall::lstat*:return," line makes it work. Note sure why that
probe is missing though.

-- 
You are receiving this mail because:
You are the assignee for the bug.