From: Claudio Jeker Subject: Re: btrace(1): fix -e and filename args To: tech@openbsd.org Date: Sat, 17 May 2025 14:00:30 +0200 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