tools/build-watch.d
author Jan Parcel <jan.parcel@oracle.com>
Mon, 25 Jan 2016 10:57:40 -0800
branchs11u3-sru
changeset 5324 5683175b6e99
parent 3979 46744fa00de4
permissions -rwxr-xr-x
PSARC/2015/395 OpenSSH 7.1p1 PSARC 2014/390 OpenSSH GSSKEY 21696247 upgrade OpenSSH to 7.1p1 22031540 problem in UTILITY/OPENSSH 22022180 problem in UTILITY/OPENSSH 22048638 problem in UTILITY/OPENSSH 19775805 OpenSSH contains a redundant call to do_pam_setcred() 21379157 OpenSSH shouldn't call setproject(3PROJECT) when configured to use PAM 20919294 upgrade OpenSSH to 6.8p1 19130869 migrate the Xforwarding bug fix (15350344) from SunSSH to OpenSSH 21861322 OpenSSH client hangs on broken pipe 22018764 remove cast128-cbc from OpenSSH 21919790 add GSSKeyEx as an alias to GSSAPIKeyExchange in OpenSSH 19941148 GSS-API Key Exchange for OpenSSH 21643415 OpenSSH should use AI_ADDRCONFIG per bug 19827438 20370803 OpenSSH patch number collision 20711463 OpenSSH wants to be able to login to a role too 22389801 OpenSSH: remove cast from ssh(1), sshd(8), ssh_config(5) and sshd_config(5) 22582153 openssh system/linker should be added to core REQ

#!/usr/sbin/dtrace -s -q
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 *
 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 *
 *
 * build-watch.d - a simple dtrace script to keep track of some key
 *		   information to help determine build dependencies.
 */

/*
 * record paths successfully opened
 */
syscall::open:entry, syscall::open64:entry
/(pid == $target) || progenyof($target)/
{
	self->file = cleanpath(copyinstr(arg0));
}
syscall::openat:entry
/(pid == $target) || progenyof($target)/
{
	self->file = cleanpath(copyinstr(arg1));
}

syscall::open*:return
/((pid == $target) || progenyof($target)) && (arg0 != -1) && (self->file != "")/
{
	@opened[self->file] = count();
	self->file = 0;
}

/*
 * record the programs successfully execed (full path names)
 */
proc:::exec
/(pid == $target) || progenyof($target)/
{
	self->execpath = stringof(arg0);
}

proc:::exec-success
/(pid == $target) || progenyof($target)/
{
	@tools[execname, self->execpath] = count();
	self->execpath = 0;
}

/*
 * Summarize the results of watching the [sub]process tree
 */
END
{
	printf("\n");
	printa("TOOL: %s = %s\n", @tools);
	printa("FILE: %s\n", @opened);
}