btrace(8): add initial support for cli arguments
authordv <dv@openbsd.org>
Wed, 8 Sep 2021 13:29:51 +0000 (13:29 +0000)
committerdv <dv@openbsd.org>
Wed, 8 Sep 2021 13:29:51 +0000 (13:29 +0000)
commit58afdee70d18227ff57089cd50d71573337e811d
treeb20c4fc285e2820a80681019dd12aebd9cf10b07
parent8f4f17b38f0164e88b0aeb74dc372fbdabcbb7a2
btrace(8): add initial support for cli arguments

This adds initial support for passing cli args to btrace(8) for use
in bt(5) scripts. Similar to bpftrace, they are referenced via $1,
$2, etc. with $# being the number of command line arguments provided.

Adds an initial regress test and a Makefile change to allow providing
arguments to regress tests in a .args file.

Currently no limit is imposed on the number of arguments, keeping
a similar approach as observed in bpftrace. References to undefined
arguments result in a new "nil" type that contextually acts as a
zero or empty string. More work can be done here to improve bpftrace
compatibility.

ok mpi@, jasper@
regress/usr.sbin/btrace/staticv.args [new file with mode: 0644]
regress/usr.sbin/btrace/staticv.bt [new file with mode: 0644]
regress/usr.sbin/btrace/staticv.ok [new file with mode: 0644]
usr.sbin/btrace/TODO
usr.sbin/btrace/bt_parse.y
usr.sbin/btrace/bt_parser.h
usr.sbin/btrace/btrace.8
usr.sbin/btrace/btrace.c