Mercurial > hg > graal-compiler
annotate agent/test/jdi/runjpda.sh @ 10267:8b40495b9381
Merge
author | minqi |
---|---|
date | Mon, 13 May 2013 18:08:13 +0000 |
parents | c18cbe5936b8 |
children |
rev | line source |
---|---|
0 | 1 #!/bin/ksh |
2 # | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
3 # Copyright (c) 2002, 2004, 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 # This script runs the test program, sagtest.java, with the regular | |
27 # JPDA jdi. | |
28 # It then starts up the debuggee part of the test, sagtarg.java, | |
29 # and calls gcore to create file sagcore for use in running | |
30 # the SA JDI client. | |
31 | |
32 set -x | |
33 # jdk is a jdk with the vm from the sa workspace | |
34 while [ $# != 0 ] ; do | |
35 case $1 in | |
36 -vv) | |
37 set -x | |
38 ;; | |
39 -gui) | |
40 theClass=sun.jvm.hotspot.HSDB | |
41 ;; | |
42 -jdk) | |
43 jdk=$2 | |
44 shift | |
45 ;; | |
46 -jdbx) | |
47 do=jdbx | |
48 ;; | |
49 -jdb) | |
50 do=jdb | |
51 ;; | |
52 -help | help) | |
53 doUsage | |
54 exit | |
55 ;; | |
56 -dontkill) | |
57 dontkill=true | |
58 ;; | |
59 -d64) | |
60 d64=-d64 | |
61 ;; | |
62 -*) | |
63 javaArgs="$javaArgs $1" | |
64 ;; | |
65 *) | |
66 echo "$1" | grep -s '^[0-9]*$' > /dev/null | |
67 if [ $? = 0 ] ; then | |
68 # it is a pid | |
69 args="$args $1" | |
70 else | |
71 # It is a core. | |
72 # We have to pass the name of the program that produced the | |
73 # core, and the core file itself. | |
74 args="$jdk/bin/java $1" | |
75 fi | |
76 ;; | |
77 esac | |
78 shift | |
79 done | |
80 | |
81 # First, run the sagtest.java with the regular JPDA jdi | |
82 workdir=./workdir | |
83 mkdir -p $workdir | |
84 CLASSPATH=$jdk/classes:$jdk/lib/tools.jar:$workdir | |
85 export CLASSPATH | |
86 | |
87 $jdk/bin/javac -g -source 1.5 -classpath $jdk/classes:$jdk/lib/tools.jar:$workdir -J-Xms40m -d $workdir \ | |
88 TestScaffold.java \ | |
89 VMConnection.java \ | |
90 TargetListener.java \ | |
91 TargetAdapter.java \ | |
92 sagdoit.java \ | |
93 sagtarg.java \ | |
94 sagtest.java | |
95 | |
96 if [ $? != 0 ] ; then | |
97 exit 1 | |
98 fi | |
99 | |
100 $jdk/bin/java $javaArgs -Dtest.classes=$workdir sagtest | |
101 | |
102 # Now run create a core file for use in running sa-jdi | |
103 | |
104 if [ ! core.satest -nt sagtarg.class ] ; then | |
105 tmp=/tmp/sagsetup | |
106 rm -f $tmp | |
107 $jdk/bin/java $d64 sagtarg > $tmp & | |
108 pid=$! | |
109 while [ ! -s $tmp ] ; do | |
110 # Kludge alert! | |
111 sleep 2 | |
112 done | |
113 #rm -f $tmp | |
114 | |
115 # force core dump of the debuggee | |
116 OS=`uname` | |
117 if [ "$OS" = "Linux" ]; then | |
118 # Linux does not have gcore command. Instead, we use 'gdb's | |
119 # gcore command. Note that only some versions of gdb support | |
120 # gdb command. | |
121 echo "gcore" > gdbscript | |
122 gdb -batch -p $pid -x gdbscript | |
123 rm -f gdbscript | |
124 else | |
125 gcore $* $pid | |
126 fi | |
127 mv core.$pid sagcore | |
128 | |
129 if [ "$dontkill" != "true" ]; then | |
130 kill -9 $pid | |
131 fi | |
132 fi | |
133 |