Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Nov 2015 19:54:18 -0500
From:      "George Neville-Neil" <gnn@freebsd.org>
To:        "Mark Johnston" <markj@FreeBSD.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r291341 - head/share/dtrace
Message-ID:  <9DC14292-288A-4BD0-910B-7363AE63BA15@freebsd.org>
In-Reply-To: <20151125231842.GA67865@wkstn-mjohnston.west.isilon.com>
References:  <201511252259.tAPMxfIq060477@repo.freebsd.org> <20151125231842.GA67865@wkstn-mjohnston.west.isilon.com>

next in thread | previous in thread | raw e-mail | index | archive | help


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
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
>> --- /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 <gnn@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9DC14292-288A-4BD0-910B-7363AE63BA15>