1*10791SJonathan.Haslam@Sun.COM# 2*10791SJonathan.Haslam@Sun.COM# CDDL HEADER START 3*10791SJonathan.Haslam@Sun.COM# 4*10791SJonathan.Haslam@Sun.COM# The contents of this file are subject to the terms of the 5*10791SJonathan.Haslam@Sun.COM# Common Development and Distribution License (the "License"). 6*10791SJonathan.Haslam@Sun.COM# You may not use this file except in compliance with the License. 7*10791SJonathan.Haslam@Sun.COM# 8*10791SJonathan.Haslam@Sun.COM# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*10791SJonathan.Haslam@Sun.COM# or http://www.opensolaris.org/os/licensing. 10*10791SJonathan.Haslam@Sun.COM# See the License for the specific language governing permissions 11*10791SJonathan.Haslam@Sun.COM# and limitations under the License. 12*10791SJonathan.Haslam@Sun.COM# 13*10791SJonathan.Haslam@Sun.COM# When distributing Covered Code, include this CDDL HEADER in each 14*10791SJonathan.Haslam@Sun.COM# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*10791SJonathan.Haslam@Sun.COM# If applicable, add the following below this CDDL HEADER, with the 16*10791SJonathan.Haslam@Sun.COM# fields enclosed by brackets "[]" replaced with your own identifying 17*10791SJonathan.Haslam@Sun.COM# information: Portions Copyright [yyyy] [name of copyright owner] 18*10791SJonathan.Haslam@Sun.COM# 19*10791SJonathan.Haslam@Sun.COM# CDDL HEADER END 20*10791SJonathan.Haslam@Sun.COM# 21*10791SJonathan.Haslam@Sun.COM 22*10791SJonathan.Haslam@Sun.COM# 23*10791SJonathan.Haslam@Sun.COM# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24*10791SJonathan.Haslam@Sun.COM# Use is subject to license terms. 25*10791SJonathan.Haslam@Sun.COM# 26*10791SJonathan.Haslam@Sun.COM 27*10791SJonathan.Haslam@Sun.COMif [ $# != 1 ]; then 28*10791SJonathan.Haslam@Sun.COM echo expected one argument: '<'dtrace-path'>' 29*10791SJonathan.Haslam@Sun.COM exit 2 30*10791SJonathan.Haslam@Sun.COMfi 31*10791SJonathan.Haslam@Sun.COM 32*10791SJonathan.Haslam@Sun.COMdtrace=$1 33*10791SJonathan.Haslam@Sun.COMDIR=/var/tmp/dtest.$$ 34*10791SJonathan.Haslam@Sun.COM 35*10791SJonathan.Haslam@Sun.COMmkdir $DIR 36*10791SJonathan.Haslam@Sun.COMcd $DIR 37*10791SJonathan.Haslam@Sun.COM 38*10791SJonathan.Haslam@Sun.COMcat > test.c <<EOF 39*10791SJonathan.Haslam@Sun.COMvoid 40*10791SJonathan.Haslam@Sun.COMthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydog(void) 41*10791SJonathan.Haslam@Sun.COM{ 42*10791SJonathan.Haslam@Sun.COM while (1) 43*10791SJonathan.Haslam@Sun.COM ; 44*10791SJonathan.Haslam@Sun.COM} 45*10791SJonathan.Haslam@Sun.COM 46*10791SJonathan.Haslam@Sun.COMint 47*10791SJonathan.Haslam@Sun.COMmain(int argc, char *argv[]) 48*10791SJonathan.Haslam@Sun.COM{ 49*10791SJonathan.Haslam@Sun.COM thequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydogthequickbrownfoxjumpsoverthelazydog(); 50*10791SJonathan.Haslam@Sun.COM} 51*10791SJonathan.Haslam@Sun.COMEOF 52*10791SJonathan.Haslam@Sun.COM 53*10791SJonathan.Haslam@Sun.COMcc -o test test.c 54*10791SJonathan.Haslam@Sun.COMif [ $? -ne 0 ]; then 55*10791SJonathan.Haslam@Sun.COM print -u2 "failed to compile test.c" 56*10791SJonathan.Haslam@Sun.COM exit 1 57*10791SJonathan.Haslam@Sun.COMfi 58*10791SJonathan.Haslam@Sun.COM 59*10791SJonathan.Haslam@Sun.COMscript() 60*10791SJonathan.Haslam@Sun.COM{ 61*10791SJonathan.Haslam@Sun.COM $dtrace -c ./test -qs /dev/stdin <<EOF 62*10791SJonathan.Haslam@Sun.COM profile:::profile-1001hz 63*10791SJonathan.Haslam@Sun.COM /pid == \$target/ 64*10791SJonathan.Haslam@Sun.COM { 65*10791SJonathan.Haslam@Sun.COM @[arg1] = count(); 66*10791SJonathan.Haslam@Sun.COM } 67*10791SJonathan.Haslam@Sun.COM 68*10791SJonathan.Haslam@Sun.COM tick-1s 69*10791SJonathan.Haslam@Sun.COM /n++ > 10/ 70*10791SJonathan.Haslam@Sun.COM { 71*10791SJonathan.Haslam@Sun.COM printa("%A %@d\n", @); 72*10791SJonathan.Haslam@Sun.COM exit(0); 73*10791SJonathan.Haslam@Sun.COM } 74*10791SJonathan.Haslam@Sun.COMEOF 75*10791SJonathan.Haslam@Sun.COM} 76*10791SJonathan.Haslam@Sun.COM 77*10791SJonathan.Haslam@Sun.COMscript 78*10791SJonathan.Haslam@Sun.COMstatus=$? 79*10791SJonathan.Haslam@Sun.COM 80*10791SJonathan.Haslam@Sun.COMcd / 81*10791SJonathan.Haslam@Sun.COM/usr/bin/rm -rf $DIR 82*10791SJonathan.Haslam@Sun.COM 83*10791SJonathan.Haslam@Sun.COMexit $status 84