54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill#
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# CDDL HEADER START
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill#
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# The contents of this file are subject to the terms of the
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# Common Development and Distribution License (the "License").
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# You may not use this file except in compliance with the License.
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill#
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# or http://www.opensolaris.org/os/licensing.
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# See the License for the specific language governing permissions
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# and limitations under the License.
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill#
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# When distributing Covered Code, include this CDDL HEADER in each
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# If applicable, add the following below this CDDL HEADER, with the
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# fields enclosed by brackets "[]" replaced with your own identifying
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# information: Portions Copyright [yyyy] [name of copyright owner]
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill#
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# CDDL HEADER END
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill#
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill#
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill# Copyright (c) 2013, Joyent, Inc. All rights reserved.
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill#
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillif [ $# != 1 ]; then
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill echo expected one argument: '<'dtrace-path'>'
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill exit 2
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillfi
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrilldtrace=$1
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan CantrillDIR=/var/tmp/dtest.$$
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillmkdir $DIR
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillcd $DIR
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillcat > test.c <<EOF
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillvoid
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillfoo()
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill{}
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan CantrillEOF
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillcat > doogle.d <<EOF
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillprovider doogle {
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill probe bagnoogle();
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill};
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan CantrillEOF
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
a386cc11a86ecb60f5a48078d22c1500e2ad003eRobert Mustacchigcc -m32 -c test.c
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill$dtrace -G -32 -s doogle.d test.o -o doogle.d.o
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillif [ $? -eq 0 ]; then
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill print -u2 "dtrace succeeded despite having no probe sites"
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill exit 1
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillfi
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillcd /
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrill/usr/bin/rm -rf $DIR
54a20ab41aadcb81c53e72fc65886e964e9add59Bryan Cantrillexit 0