1#! /usr/bin/ksh 2# 3# 4# This file and its contents are supplied under the terms of the 5# Common Development and Distribution License ("CDDL"), version 1.0. 6# You may only use this file in accordance with the terms of version 7# 1.0 of the CDDL. 8# 9# A full copy of the text of the CDDL should have accompanied this 10# source. A copy of the CDDL is also available via the Internet at 11# http://www.illumos.org/license/CDDL. 12# 13 14# 15# Copyright (c) 2013 Joyent, Inc. All rights reserved. 16# 17 18# 19# Use print() on userland CTF types and verify we get the data we 20# expect. This time, use $target to make sure that path works correctly. 21# 22 23if [ $# != 1 ]; then 24 echo expected one argument: '<'dtrace-path'>' 25 exit 2 26fi 27 28dtrace=$1 29t="final_fantasy_info_t" 30exe="tst.printtype.exe" 31 32elfdump "./$exe" | grep -q '.SUNW_ctf' 33if [[ $? -ne 0 ]]; then 34 echo "CTF does not exist in $exe, that's a bug" >&2 35 exit 1 36fi 37 38./$exe & 39pid=$! 40 41$dtrace -p $pid -qs /dev/stdin <<EOF 42pid\$target::ff_getgameid:entry 43/next == 0/ 44{ 45 print(*args[0]); 46 printf("\n"); 47 next = 1; 48} 49 50pid\$target::ff_getpartysize:entry 51/next == 1/ 52{ 53 print(*args[0]); 54 printf("\n"); 55 next = 2; 56} 57 58pid\$target::ff_getsummons:entry 59/next == 2/ 60{ 61 print(*args[0]); 62 printf("\n"); 63 exit(0); 64} 65EOF 66rc=$? 67 68kill -9 $pid 69 70exit $rc 71