On 25 Nov 2015, at 18:20, Mark Johnston wrote:
On Wed, Nov 25, 2015 at 10:59:41PM +0000, George V. Neville-Neil
wrote:
Author: gnn
Date: Wed Nov 25 22:59:41 2015
New Revision: 291341
URL: https://svnweb.freebsd.org/changeset/base/291341
Log:
Summary: A simple script to print the return value of any function,
with or without wild cards.
Added:
head/share/dtrace/retval.sh (contents, props changed)
Added: head/share/dtrace/retval.sh
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/share/dtrace/retval.sh Wed Nov 25 22:59:41 2015 (r291341)
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# Copyright (c) 2015 George V. Neville-Neil <g...@freebsd.org>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above
copyright
+# notice, this list of conditions and the following disclaimer in
the
+# documentation and/or other materials provided with the
distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS
IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+# retval.sh - show the return value of any probe named by the user
+#
+# USAGE: retval.sh name
+#
+# The name can be a full function name or a wild card name. The
+# caller is responsible for handling the escaping of wild cards.
+#
+/usr/sbin/dtrace -n '
+
+#pragma D option quiet
+
+:::'$1':return {
+ printf("%s %d\n", probefunc, arg1);
+}
+'
This can be done without a shell since D has support for command-line
arguments. The following should be equivalent:
#!/usr/sbin/dtrace -s
#pragma D option quiet
fbt::$1:return
{
printf("%s %d\n", probefunc, arg1);
}
Done. Although if we ever want to expand this script it'll have to move
back to shell.
DTrace has very poor options handling overall.
Best,
George
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"