summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmatthew <jmatthew@openbsd.org>2021-03-21 01:24:35 +0000
committerjmatthew <jmatthew@openbsd.org>2021-03-21 01:24:35 +0000
commitb69b24c57d5aab7ef5280eb5ed573abadf389475 (patch)
tree90cae9a1e24fe8d46014ea4828f73951cc1b6abd
parents/struft/struct/; thanks James Hastings (diff)
downloadwireguard-openbsd-b69b24c57d5aab7ef5280eb5ed573abadf389475.tar.xz
wireguard-openbsd-b69b24c57d5aab7ef5280eb5ed573abadf389475.zip
Add -n (no action) mode, which just parses the program and exits.
ok mpi@ kn@
-rw-r--r--usr.sbin/btrace/btrace.87
-rw-r--r--usr.sbin/btrace/btrace.c14
2 files changed, 15 insertions, 6 deletions
diff --git a/usr.sbin/btrace/btrace.8 b/usr.sbin/btrace/btrace.8
index 1a998d3b168..f905fa07edf 100644
--- a/usr.sbin/btrace/btrace.8
+++ b/usr.sbin/btrace/btrace.8
@@ -1,4 +1,4 @@
-.\" $OpenBSD: btrace.8,v 1.2 2020/09/11 08:16:15 mpi Exp $
+.\" $OpenBSD: btrace.8,v 1.3 2021/03/21 01:24:35 jmatthew Exp $
.\"
.\" Copyright (c) 2019 Martin Pieuchot <mpi@openbsd.org>
.\"
@@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
-.Dd $Mdocdate: September 11 2020 $
+.Dd $Mdocdate: March 21 2021 $
.Dt BTRACE 8
.Os
.Sh NAME
@@ -46,6 +46,9 @@ Execute
.Ar program .
.It Fl l
List all available probes.
+.It Fl n
+No action.
+Parse the program and then exit.
.It Fl p Ar pid
Enable tracing on the indicated process ID (only one
.Fl p
diff --git a/usr.sbin/btrace/btrace.c b/usr.sbin/btrace/btrace.c
index 992215f172c..8c9b04ca17f 100644
--- a/usr.sbin/btrace/btrace.c
+++ b/usr.sbin/btrace/btrace.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: btrace.c,v 1.29 2021/02/08 09:46:45 mpi Exp $ */
+/* $OpenBSD: btrace.c,v 1.30 2021/03/21 01:24:35 jmatthew Exp $ */
/*
* Copyright (c) 2019 - 2020 Martin Pieuchot <mpi@openbsd.org>
@@ -124,7 +124,7 @@ main(int argc, char *argv[])
int fd = -1, ch, error = 0;
const char *filename = NULL, *btscript = NULL;
const char *errstr;
- int showprobes = 0, tracepid = -1;
+ int showprobes = 0, tracepid = -1, noaction = 0;
setlocale(LC_ALL, "");
@@ -133,7 +133,7 @@ main(int argc, char *argv[])
err(1, "pledge");
#endif
- while ((ch = getopt(argc, argv, "e:lp:v")) != -1) {
+ while ((ch = getopt(argc, argv, "e:lnp:v")) != -1) {
switch (ch) {
case 'e':
btscript = optarg;
@@ -141,6 +141,9 @@ main(int argc, char *argv[])
case 'l':
showprobes = 1;
break;
+ case 'n':
+ noaction = 1;
+ break;
case 'p':
if (tracepid != -1)
usage();
@@ -178,6 +181,9 @@ main(int argc, char *argv[])
return error;
}
+ if (noaction)
+ return error;
+
if (showprobes || g_nprobes > 0) {
fd = open(__PATH_DEVDT, O_RDONLY);
if (fd == -1)
@@ -201,7 +207,7 @@ main(int argc, char *argv[])
__dead void
usage(void)
{
- fprintf(stderr, "usage: %s [-lv] [-p pid] [-e program|file]\n",
+ fprintf(stderr, "usage: %s [-lnv] [-p pid] [-e program | file]\n",
getprogname());
exit(1);
}