agent/test/jdi/runsa.sh

Mon, 28 Jul 2014 15:06:38 -0700

author
fzhinkin
date
Mon, 28 Jul 2014 15:06:38 -0700
changeset 6997
dbb05f6d93c4
parent 4093
5a98bf7d847b
child 6876
710a3c8b516e
permissions
-rw-r--r--

8051344: JVM crashed in Compile::start() during method parsing w/ UseRTMDeopt turned on
Summary: call rtm_deopt() only if there were no compilation bailouts before.
Reviewed-by: kvn

     1 #!/bin/ksh
     2 #
     3 # Copyright (c) 2002, 2012, 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 #
    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
    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 ]
    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
    43     The corefile must have been produced by the same java as is running SA.
    45 EOF
    46 }
    48 if [ $# = 0 ] ; then
    49     doUsage
    50     exit 1
    51 fi
    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
    57 do=
    58 args=
    59 theClass=sagclient
    60 javaArgs=
    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
   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
   114 set -x
   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"
   128 javacp="$jdk/lib/sa-jdi.jar:$classesDir:$jdk/lib/tools.jar:$jdk/classes:./workdir"
   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"
   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
   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
   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
   162     JAVASRCPATH=$mhs/../sa/src/share/vm/agent
   163     export JAVASRCPATH
   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
   183 fi

mercurial