hotspot/agent/test/jdi/runjdb.sh
changeset 1 489c9b5090e2
child 5547 f4b087cbb361
equal deleted inserted replaced
0:fd16c54261b3 1:489c9b5090e2
       
     1 #!/bin/sh
       
     2 #
       
     3 # Copyright 2002 Sun Microsystems, Inc.  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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
       
    21 # CA 95054 USA or visit www.sun.com if you need additional information or
       
    22 # have any questions.
       
    23 #  
       
    24 #
       
    25 
       
    26 #  jdb is a .c file that seems to discard the setting of CLASSPATH.
       
    27 # So, we have to run jdb by calling java directly :-(
       
    28 
       
    29 # License file for development version of dbx
       
    30 LM_LICENSE_FILE=7588@extend.eng:/usr/dist/local/config/sparcworks/license.dat:7588@setlicense
       
    31 export LM_LICENSE_FILE
       
    32 
       
    33 doUsage()
       
    34 {
       
    35    cat <<EOF
       
    36 Usage:  runjdb.sh corefile -jdk jdk-pathname -sa sa-pathname
       
    37     sa-pathname is the path of a JDI-SA build dir.
       
    38 EOF
       
    39 }
       
    40 
       
    41 jdk=
       
    42 javaArgs=
       
    43 args=
       
    44 sa=
       
    45 while [ $# != 0 ] ; do
       
    46     case $1 in
       
    47       -vv)
       
    48         set -x
       
    49         ;;
       
    50      -jdk)
       
    51         jdk=$2
       
    52         shift
       
    53         ;;
       
    54      -sa)
       
    55         sa=$2
       
    56         shift
       
    57         ;;
       
    58      -help | help)
       
    59         doUsage
       
    60         exit
       
    61         ;;
       
    62      -*)
       
    63         javaArgs="$javaArgs $1"
       
    64         ;;
       
    65      *)
       
    66         if [ ! -z "$args" ] ; then
       
    67             echo "Error: Only one core file or pid can be specified"
       
    68             exit 1
       
    69         fi
       
    70         echo "$1" | grep -s '^[0-9]*$' > /dev/null
       
    71         if [ $? = 0 ] ; then
       
    72             # it is a pid
       
    73             args="$args $1"
       
    74             echo "Error: A pid is not yet allowed"
       
    75             exit 1
       
    76         else
       
    77             # It is a core.        
       
    78             # We have to pass the name of the program that produced the
       
    79             # core, and the core file itself.
       
    80             args="$1"
       
    81         fi
       
    82         ;;
       
    83    esac
       
    84    shift
       
    85 done
       
    86 
       
    87 if [ -z "$jdk" ] ; then
       
    88     echo "Error:  -jdk jdk-pathname is required"
       
    89     exit 1
       
    90 fi
       
    91 if [ -z "$sa" ] ; then
       
    92     echo "Error:  -sa sa-pathname is required"
       
    93     exit 1
       
    94 fi
       
    95 
       
    96 if [ -z "$args" ] ; then
       
    97     echo "Error:  a core file or pid must be specified"
       
    98     exit 1
       
    99 fi
       
   100 
       
   101 set -x
       
   102 $jdk/bin/jdb -J-Xbootclasspath/a:$sa  -connect \
       
   103   sun.jvm.hotspot.jdi.SACoreAttachingConnector:core=$args,javaExecutable=$jdk/bin/java
       
   104 
       
   105 
       
   106 #$jdk/bin/java -Xbootclasspath/a:$mmm/ws/merlin-sa/build/agent \
       
   107 #  com.sun.tools.example.debug.tty.TTY -connect \
       
   108 #  sun.jvm.hotspot.jdi.SACoreAttachingConnector:core=sagcore,javaExecutable=$jdk/bin/java