source: trunk/openjdk/hotspot/agent/test/jdi/runjpda.sh

Last change on this file was 278, checked in by dmik, 14 years ago

trunk: Merged in openjdk6 b22 from branches/vendor/oracle.

File size: 3.4 KB
Line 
1#!/bin/ksh
2#
3# Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
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#
20# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
21# or visit www.oracle.com if you need additional information or have any
22# questions.
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
32set -x
33# jdk is a jdk with the vm from the sa workspace
34while [ $# != 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
79done
80
81# First, run the sagtest.java with the regular JPDA jdi
82workdir=./workdir
83mkdir -p $workdir
84CLASSPATH=$jdk/classes:$jdk/lib/tools.jar:$workdir
85export 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
96if [ $? != 0 ] ; then
97 exit 1
98fi
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
104if [ ! 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
132fi
133
Note: See TracBrowser for help on using the repository browser.