Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4298070

-Xrunhprof:cpu=samples causes crash and assertion "scopeDesc must

XMLWordPrintable

    • x86
    • windows_nt



      Name: dkC59003 Date: 12/09/99



      HotSpot 1.3fcs-Q crashes while executing nsk/coverage/runtime/runtime010 test
      if -Xrunhprof:cpu=samples option is used.
      In debug mode, assertion failure occurs: "scopeDesc must exist".
      Classic passes the test as well as 2.0rc1-I.

      Log and test source follow:

      $ java -version
      java version "1.3.0"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-Q)
      Java HotSpot(TM) Client VM (build 1.3-Q, mixed mode)
      $ java -Xinternalversion
      Built on Dec 8 1999 22:37:43 by java_re with "MS VC++ 6.0"

      $ java -Xrunhprof:cpu=samples runtime010
      [1] + Done(139) g:/ld24/java/hotspot/jdk1.3.0/win32/bin/java -Xrunhprof:cpu=samples
      runtime010
        173 Segmentation violation g:/ld24/java/hotspot/jdk1.3.0/win32/bin/java

      $ java_g -Xrunhprof:cpu=samples runtime010
      #
      # HotSpot Virtual Machine Error, assertion failure
      #
      # assert(pc_desc != 0, "scopeDesc must exist")
      #
      # Error ID: C:/hotspot\src\share\vm\runtime\vframe.cpp, 322
      #

      ----------------------------------------------------------- runtime010.java
      /* Ident: @(#)runtime010.java 1.1 99/07/16
       * Copyright 07/16/99 Sun Microsystems, Inc. All Rights Reserved
       */

      import java.io.*;

      public class runtime010 {
          public static void main( String argv[] ) {
      System.exit(run(argv, System.out));
          }

          public static int run(String argv[], PrintStream out) {
           String sa[]=new String[2];
          
          sa[0]="0";
          sa[1]="1";
      for( int i=0; i<10000 ; i++ ) {
      try {
      if( i<2000 ) {
      new runtime010().x(out, i, sa);
      } else if( i<4000 ) {
      new runtime010().y(out, i, sa);
      } else {
      new runtime010().z(out, i, sa);
      }
      } catch( Throwable e ) {
      // out.println(e);
      }
      }
      return 0;
          }

          public int z(PrintStream out, int i, String s[]) throws Throwable {
           return y(out, i, s);
          }

          public int y(PrintStream out, int i, String s[]) throws Throwable {
           return x(out, i, s);
          }

          public int x(PrintStream out, int i, String s[]) throws Throwable {
           int zer=i;

      if( i>5000 ) {
      return i/(i-zer);
      }
      return 0;
          }
      }

      ======================================================================

            dcubed Daniel Daugherty
            dkhukhrosunw Dmitry Khukhro (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: