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