Index | Thread | Search

From:
Claudio Jeker <cjeker@diehard.n-r-g.com>
Subject:
Re: btrace(1): fix -e and filename args
To:
tech@openbsd.org
Date:
Sat, 17 May 2025 14:00:30 +0200

Download raw body.

Thread
On Sat, May 17, 2025 at 12:21:24PM +0100, Jason McIntyre wrote:
> On Sat, May 17, 2025 at 01:12:38PM +0200, Rafael Sadowski wrote:
> > On Sat May 17, 2025 at 06:44:53AM +0100, Jason McIntyre wrote:
> > > On Sat, May 17, 2025 at 05:00:50AM +0200, Rafael Sadowski wrote:
> > > > btrace(1) does not accept "-e file" Instead, it depends on filename as
> > > > the last parameter if no -b inline-script is specified. I also improved
> > > > the definition of "program".
> > > > 
> > > 
> > > hi!
> > > 
> > > - is there a reason for changing "file" to "filename"? "file" is
> > >   probably more common - if you keep it you can simply do "Op Ar".
> > 
> > No special reason. It was so named in the source code. "file" is fine. Thanks.
> > "Op Ar" translates to "[file ...]". The current implantation expects
> > only one file.
> > 
> > > 
> > > - you need to sync usage()
> > > 
> > 
> > Thanks.
> > 
> > > - what does "argument ..." represent? i mean, what arguments can be
> > >   passed? i know its not part of your diff, but i want to make sure that
> > >   it's not also meant to represent "file".
> > 
> > I have no clue what "argument ..." expects and what it does. I haven't
> > look to deeply in bt_parse.c.
> > 
> > 
> > diff --git a/usr.sbin/btrace/btrace.8 b/usr.sbin/btrace/btrace.8
> > index b233465185a..8a6532ba682 100644
> > --- a/usr.sbin/btrace/btrace.8
> > +++ b/usr.sbin/btrace/btrace.8
> > @@ -23,8 +23,9 @@
> >  .Sh SYNOPSIS
> >  .Nm btrace
> >  .Op Fl lnv
> > -.Op Fl e Ar program | Ar file
> > +.Op Fl e Ar program
> >  .Op Fl p Ar file
> > +.Op Ar file
> >  .Op Ar argument ...
> >  .Sh DESCRIPTION
> >  The
> > @@ -33,7 +34,8 @@ utility provides an interface to inspect the internals of the system and
> >  programs.
> >  It interprets the
> >  .Xr bt 5
> > -program in
> > +.Ar program
> > +or
> >  .Ar file
> >  and communicates with the dynamic tracer device using the interface described in
> >  .Xr dt 4 .
> > @@ -41,7 +43,8 @@ and communicates with the dynamic tracer device using the interface described in
> >  The options are as follows:
> >  .Bl -tag -width Ds
> >  .It Fl e Ar program
> > -Execute
> > +Execute inline
> > +.Xr bt 5
> >  .Ar program .
> >  .It Fl l
> >  List all available probes.
> > diff --git a/usr.sbin/btrace/btrace.c b/usr.sbin/btrace/btrace.c
> > index 977c9ed5162..f8556ca26aa 100644
> > --- a/usr.sbin/btrace/btrace.c
> > +++ b/usr.sbin/btrace/btrace.c
> > @@ -231,7 +231,7 @@ main(int argc, char *argv[])
> >  __dead void
> >  usage(void)
> >  {
> > -	fprintf(stderr, "usage: %s [-lnv] [-e program | file] [-p file] "
> > +	fprintf(stderr, "usage: %s [-lnv] [-e program] [-p file] [ file ] "
> >  	    "[argument ...]\n", getprogname());
> >  	exit(1);
> >  }
> > 
> 
> in usage: [ file ] -> [file ...]

Usage is fine, it is the man page that renders this incorrectly.

If no -e is used then btrace will use the first argument as filename to a
bt(5) script and all other arguments are passed to the btrace script as
$1, $2, etc.

-- 
:wq Claudio