annotate agent/test/jdi/runsa.sh @ 3465:8cd198d7cbc1

When a method that has been compiled before is considered for inlining, use its compiled (native) code size for size checks. This avoids inlining compiled methods that already contain many other inlined methods, reducing generated code size and usually execution time as well. Also, add GraalMetrics bookkeeping for inlining.
author Peter Hofer <peter.hofer@jku.at>
date Mon, 01 Aug 2011 13:45:25 +0200
parents c18cbe5936b8
children 5a98bf7d847b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 #!/bin/ksh
a61af66fc99e Initial load
duke
parents:
diff changeset
2 #
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
3 # Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
5 #
a61af66fc99e Initial load
duke
parents:
diff changeset
6 # This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
7 # under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
8 # published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
9 #
a61af66fc99e Initial load
duke
parents:
diff changeset
10 # This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
12 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
13 # version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
14 # accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
15 #
a61af66fc99e Initial load
duke
parents:
diff changeset
16 # You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
17 # 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
19 #
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
21 # or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 0
diff changeset
22 # questions.
0
a61af66fc99e Initial load
duke
parents:
diff changeset
23 #
a61af66fc99e Initial load
duke
parents:
diff changeset
24 #
a61af66fc99e Initial load
duke
parents:
diff changeset
25
a61af66fc99e Initial load
duke
parents:
diff changeset
26
a61af66fc99e Initial load
duke
parents:
diff changeset
27 # This jdk must be hopper or better; it must have the
a61af66fc99e Initial load
duke
parents:
diff changeset
28 # SA connectors in VirtualMachineManagerImpl.
a61af66fc99e Initial load
duke
parents:
diff changeset
29 jdk=/java/re/jdk/1.4.1/promoted/latest/binaries/solaris-sparc
a61af66fc99e Initial load
duke
parents:
diff changeset
30 #jdk=/net/mmm/export/mmm/jdk1.4fcs.sa
a61af66fc99e Initial load
duke
parents:
diff changeset
31
a61af66fc99e Initial load
duke
parents:
diff changeset
32 doUsage()
a61af66fc99e Initial load
duke
parents:
diff changeset
33 {
a61af66fc99e Initial load
duke
parents:
diff changeset
34 cat <<EOF
a61af66fc99e Initial load
duke
parents:
diff changeset
35 Run sagclient.class using Serviceability Agent to talk to a corefile/pid/debugserver.
a61af66fc99e Initial load
duke
parents:
diff changeset
36 Usage: runsa.sh [-jdk <jdk-pathname>] [-jdb] [ -jdbx ] [ -d64 ] [ -remote ] [ pid | corefile | debugserver ]
a61af66fc99e Initial load
duke
parents:
diff changeset
37
a61af66fc99e Initial load
duke
parents:
diff changeset
38 -jdk means to use that jdk. Default is 1.4.1/latest.
a61af66fc99e Initial load
duke
parents:
diff changeset
39 -jdbx means to run it under jdbx
a61af66fc99e Initial load
duke
parents:
diff changeset
40 -jdb means to connect using jdb instead of the sagclient program.
a61af66fc99e Initial load
duke
parents:
diff changeset
41 -remote debugserver means you want to connect to a remote debug server
a61af66fc99e Initial load
duke
parents:
diff changeset
42
a61af66fc99e Initial load
duke
parents:
diff changeset
43 The corefile must have been produced by the same java as is running SA.
a61af66fc99e Initial load
duke
parents:
diff changeset
44
a61af66fc99e Initial load
duke
parents:
diff changeset
45 EOF
a61af66fc99e Initial load
duke
parents:
diff changeset
46 }
a61af66fc99e Initial load
duke
parents:
diff changeset
47
a61af66fc99e Initial load
duke
parents:
diff changeset
48 if [ $# = 0 ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
49 doUsage
a61af66fc99e Initial load
duke
parents:
diff changeset
50 exit 1
a61af66fc99e Initial load
duke
parents:
diff changeset
51 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
52
a61af66fc99e Initial load
duke
parents:
diff changeset
53 # License file for development version of dbx
a61af66fc99e Initial load
duke
parents:
diff changeset
54 #LM_LICENSE_FILE=7588@extend.eng:/usr/dist/local/config/sparcworks/license.dat:7588@setlicense
a61af66fc99e Initial load
duke
parents:
diff changeset
55 #export LM_LICENSE_FILE
a61af66fc99e Initial load
duke
parents:
diff changeset
56
a61af66fc99e Initial load
duke
parents:
diff changeset
57 do=
a61af66fc99e Initial load
duke
parents:
diff changeset
58 args=
a61af66fc99e Initial load
duke
parents:
diff changeset
59 theClass=sagclient
a61af66fc99e Initial load
duke
parents:
diff changeset
60 javaArgs=
a61af66fc99e Initial load
duke
parents:
diff changeset
61
a61af66fc99e Initial load
duke
parents:
diff changeset
62 while [ $# != 0 ] ; do
a61af66fc99e Initial load
duke
parents:
diff changeset
63 case $1 in
a61af66fc99e Initial load
duke
parents:
diff changeset
64 -vv)
a61af66fc99e Initial load
duke
parents:
diff changeset
65 set -x
a61af66fc99e Initial load
duke
parents:
diff changeset
66 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
67 -jdk)
a61af66fc99e Initial load
duke
parents:
diff changeset
68 jdk=$2
a61af66fc99e Initial load
duke
parents:
diff changeset
69 shift
a61af66fc99e Initial load
duke
parents:
diff changeset
70 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
71 -jdbx)
a61af66fc99e Initial load
duke
parents:
diff changeset
72 do=jdbx
a61af66fc99e Initial load
duke
parents:
diff changeset
73 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
74 -jdb)
a61af66fc99e Initial load
duke
parents:
diff changeset
75 do=jdb
a61af66fc99e Initial load
duke
parents:
diff changeset
76 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
77 -help | help)
a61af66fc99e Initial load
duke
parents:
diff changeset
78 doUsage
a61af66fc99e Initial load
duke
parents:
diff changeset
79 exit
a61af66fc99e Initial load
duke
parents:
diff changeset
80 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
81 -d64)
a61af66fc99e Initial load
duke
parents:
diff changeset
82 d64=-d64
a61af66fc99e Initial load
duke
parents:
diff changeset
83 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
84 -remote)
a61af66fc99e Initial load
duke
parents:
diff changeset
85 shift
a61af66fc99e Initial load
duke
parents:
diff changeset
86 args="$1"
a61af66fc99e Initial load
duke
parents:
diff changeset
87 do=remote
a61af66fc99e Initial load
duke
parents:
diff changeset
88 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
89 -*)
a61af66fc99e Initial load
duke
parents:
diff changeset
90 javaArgs="$javaArgs $1"
a61af66fc99e Initial load
duke
parents:
diff changeset
91 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
92 *)
a61af66fc99e Initial load
duke
parents:
diff changeset
93 echo "$1" | grep -s '^[0-9]*$' > /dev/null
a61af66fc99e Initial load
duke
parents:
diff changeset
94 if [ $? = 0 ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
95 # it is a pid
a61af66fc99e Initial load
duke
parents:
diff changeset
96 args="$args $1"
a61af66fc99e Initial load
duke
parents:
diff changeset
97 else
a61af66fc99e Initial load
duke
parents:
diff changeset
98 # It is a core.
a61af66fc99e Initial load
duke
parents:
diff changeset
99 # We have to pass the name of the program that produced the
a61af66fc99e Initial load
duke
parents:
diff changeset
100 # core, and the core file itself.
a61af66fc99e Initial load
duke
parents:
diff changeset
101 args="$jdk/bin/java $1"
a61af66fc99e Initial load
duke
parents:
diff changeset
102 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
103 ;;
a61af66fc99e Initial load
duke
parents:
diff changeset
104 esac
a61af66fc99e Initial load
duke
parents:
diff changeset
105 shift
a61af66fc99e Initial load
duke
parents:
diff changeset
106 done
a61af66fc99e Initial load
duke
parents:
diff changeset
107
a61af66fc99e Initial load
duke
parents:
diff changeset
108 if [ -z "$jdk" ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
109 error "--Error: runsa.sh: Must specify -jdk <jdk-pathname>."
a61af66fc99e Initial load
duke
parents:
diff changeset
110 error " Do runsa.sh -help for more info"
a61af66fc99e Initial load
duke
parents:
diff changeset
111 exit 1
a61af66fc99e Initial load
duke
parents:
diff changeset
112 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
113
a61af66fc99e Initial load
duke
parents:
diff changeset
114 set -x
a61af66fc99e Initial load
duke
parents:
diff changeset
115 #setenv USE_LIBPROC_DEBUGGER "-Dsun.jvm.hotspot.debugger.useProcDebugger -Djava.library.path=$saprocdir"
a61af66fc99e Initial load
duke
parents:
diff changeset
116
a61af66fc99e Initial load
duke
parents:
diff changeset
117 # If jjh makes this, then the classes are in .../build/agent.
a61af66fc99e Initial load
duke
parents:
diff changeset
118 # if someone else does, they are in .
a61af66fc99e Initial load
duke
parents:
diff changeset
119 classesDir=../../../../../../build/agent
a61af66fc99e Initial load
duke
parents:
diff changeset
120 if [ ! -r $classesDir ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
121 classesDir=.
a61af66fc99e Initial load
duke
parents:
diff changeset
122 if [ ! -r $classesDir ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
123 echo "-- Error: runsa.sh can't find the SA classes"
a61af66fc99e Initial load
duke
parents:
diff changeset
124 exit 1
a61af66fc99e Initial load
duke
parents:
diff changeset
125 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
126 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
127 #javacp="/net/mmm/export/mmm/ws/sabaseline/build/solaris/solaris_sparc_compiler1/generated/sa-jdi.jar:$classesDir:$jdk/lib/tools.jar:$jdk/classes:./workdir"
a61af66fc99e Initial load
duke
parents:
diff changeset
128
a61af66fc99e Initial load
duke
parents:
diff changeset
129 javacp="$jdk/lib/sa-jdi.jar:$classesDir:$jdk/lib/tools.jar:$jdk/classes:./workdir"
a61af66fc99e Initial load
duke
parents:
diff changeset
130
a61af66fc99e Initial load
duke
parents:
diff changeset
131
a61af66fc99e Initial load
duke
parents:
diff changeset
132 extraArgs="-showversion $javaArgs"
a61af66fc99e Initial load
duke
parents:
diff changeset
133 #extraArgs="-DdbxSvcAgentDSOPathName=/net/mmm/export/mmm/ws/m/b2/sa/src/os/solaris/agent/64bit/libsvc_agent_dbx.so $extraArgs"
a61af66fc99e Initial load
duke
parents:
diff changeset
134 #extraArgs="-DdbxSvcAgentDSOPathName=/net/jano.eng/export/disk05/hotspot/sa/solaris/sparcv9/lib/libsvc_agent_dbx.so $extraArgs"
a61af66fc99e Initial load
duke
parents:
diff changeset
135
a61af66fc99e Initial load
duke
parents:
diff changeset
136 mkdir -p workdir
a61af66fc99e Initial load
duke
parents:
diff changeset
137 if [ sagclient.java -nt ./workdir/sagclient.class ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
138 $jdk/bin/javac -d ./workdir -classpath $javacp sagclient.java
a61af66fc99e Initial load
duke
parents:
diff changeset
139 if [ $? != 0 ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
140 exit 1
a61af66fc99e Initial load
duke
parents:
diff changeset
141 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
142 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
143 if [ sagdoit.java -nt ./workdir/sagdoit.class ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
144 $jdk/bin/javac -d ./workdir -classpath $javacp sagdoit.java
a61af66fc99e Initial load
duke
parents:
diff changeset
145 if [ $? != 0 ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
146 exit 1
a61af66fc99e Initial load
duke
parents:
diff changeset
147 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
148 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
149
a61af66fc99e Initial load
duke
parents:
diff changeset
150 if [ "$do" = jdbx ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
151 set -x
a61af66fc99e Initial load
duke
parents:
diff changeset
152 dbx=/net/sparcworks.eng/export/set/sparcworks2/dbx_70_nightly/dev/buildbin/Derived-sparc-S2-opt/bin/dbx
a61af66fc99e Initial load
duke
parents:
diff changeset
153
a61af66fc99e Initial load
duke
parents:
diff changeset
154 # Have to do this export for jdbx to work. -cp and -classpath don't work.
a61af66fc99e Initial load
duke
parents:
diff changeset
155 CLASSPATH=$javacp
a61af66fc99e Initial load
duke
parents:
diff changeset
156 export CLASSPATH
a61af66fc99e Initial load
duke
parents:
diff changeset
157 #extraArgs="-Djava.class.path=$mhs/../sa/build/agent sun.jvm.hotspot.HSDB $*"
a61af66fc99e Initial load
duke
parents:
diff changeset
158 jvm_invocation="$jdk/bin/java -Xdebug \
a61af66fc99e Initial load
duke
parents:
diff changeset
159 -Dsun.boot.class.path=$jdk/classes \
a61af66fc99e Initial load
duke
parents:
diff changeset
160 $extraArgs"
a61af66fc99e Initial load
duke
parents:
diff changeset
161 #export jvm_invocation
a61af66fc99e Initial load
duke
parents:
diff changeset
162
a61af66fc99e Initial load
duke
parents:
diff changeset
163 JAVASRCPATH=$mhs/../sa/src/share/vm/agent
a61af66fc99e Initial load
duke
parents:
diff changeset
164 export JAVASRCPATH
a61af66fc99e Initial load
duke
parents:
diff changeset
165
a61af66fc99e Initial load
duke
parents:
diff changeset
166 #operand is pathname of .class file, eg ./jj.class.
a61af66fc99e Initial load
duke
parents:
diff changeset
167 echo run $args
a61af66fc99e Initial load
duke
parents:
diff changeset
168 clss=`echo $theClass | sed -e 's@\.@/@'`
a61af66fc99e Initial load
duke
parents:
diff changeset
169 if [ -r ./workdir/$clss.class ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
170 # kludge for running sagclient
a61af66fc99e Initial load
duke
parents:
diff changeset
171 $dbx ./workdir/$clss.class
a61af66fc99e Initial load
duke
parents:
diff changeset
172 else
a61af66fc99e Initial load
duke
parents:
diff changeset
173 # kludge for running HSDB
a61af66fc99e Initial load
duke
parents:
diff changeset
174 $dbx $mhs/../sa/build/agent/$clss.class
a61af66fc99e Initial load
duke
parents:
diff changeset
175 fi
a61af66fc99e Initial load
duke
parents:
diff changeset
176 elif [ "$do" = jdb ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
177 # This hasn't been tested.
a61af66fc99e Initial load
duke
parents:
diff changeset
178 $jdk/bin/jdb -J-Xbootclasspath/a:$classesDir -connect sun.jvm.hotspot.jdi.SACoreAttachingConnector:core=sagcore
a61af66fc99e Initial load
duke
parents:
diff changeset
179 elif [ "$do" = remote ] ; then
a61af66fc99e Initial load
duke
parents:
diff changeset
180 $jdk/bin/java $d64 -Djava.class.path=$javacp $extraArgs $theClass $args
a61af66fc99e Initial load
duke
parents:
diff changeset
181 else
a61af66fc99e Initial load
duke
parents:
diff changeset
182 $jdk/bin/java $d64 -Djava.class.path=$javacp $extraArgs $theClass $args
a61af66fc99e Initial load
duke
parents:
diff changeset
183
a61af66fc99e Initial load
duke
parents:
diff changeset
184 fi