Name: szC45993 Date: 08/05/99
Some set of debugging flags, used for Tonga/src/nsk/arguments/args00127 test,
crashes java_g (HotSpot VM 1.0.1, build debug a) on Solaris
(SunOS novo63 5.7 Generic_Patch sun4u sparc SUNW,Ultra-1System = SunOS).
See log and sources below.
novo63% /net/novo73/export/home2/java/latkin/hotspot/jdk1.2.2W-hs1.0.1A/bin/java_g -version
java version "1.2.2"
HotSpot VM (1.0.1, mixed mode, debug build a)
novo63% /net/novo73/export/home2/java/latkin/hotspot/jdk1.2.2W-hs1.0.1A/bin/javac args00127.java
novo63% /net/novo73/export/home2/java/latkin/hotspot/jdk1.2.2W-hs1.0.1A/bin/java_g -verify -XX:Flags=/export/ld24/java/zss/TONGA_WSs/testbase_js/src/nsk/arguments/args00127/args00127.opts args00127
VM option '+PrintInterpreter'
VM option '+PrintBytecodeHistogram'
VM option '+PrintBytecodePairHistogram'
VM option '+PrintSignatureHandlers'
VM option '+VerifyOops'
VM option '+VerifyFPU'
VM option '+VerifyThread'
VM option '+VerifyActivationFrameSize'
VM option '+VerifyReceiver'
VM option '+VerifyCounterOverflow'
#
# HotSpot Virtual Machine Error, assertion failure
#
# assert(nbits == 32 || -(1 << nbits-1) <= x && x < ( 1 << nbits-1), "value out of range")
# Error ID: /net/mizu/usr/re/hotsparc1.0.1/src/solaris_only/hotsparc_beta_jvmg/build/solaris/../../src/cpu/sparc/vm/assembler_sparc.hpp, 954 [ Unknown ]
#
Dumping core....
Abort (core dumped)
novo63% /net/novo73/export/home2/java/latkin/hotspot/jdk1.2.2W-hs1.0.1A/bin/java_g -Xint -verify -XX:Flags=/export/ld24/java/zss/TONGA_WSs/testbase_js/src/nsk/arguments/args00127/args00127.opts args00127
VM option '+PrintInterpreter'
VM option '+PrintBytecodeHistogram'
VM option '+PrintBytecodePairHistogram'
VM option '+PrintBCIHistogram'
VM option '+PrintSignatureHandlers'
VM option '+VerifyOops'
VM option '+VerifyFPU'
VM option '+VerifyThread'
VM option '+VerifyActivationFrameSize'
VM option '+VerifyReceiver'
VM option '+VerifyCounterOverflow'
HotSpot VM warning: Disabling ClassUnloading in order to print bci histogram
#
# HotSpot Virtual Machine Error, assertion failure
#
# assert(nbits == 32 || -(1 << nbits-1) <= x && x < ( 1 << nbits-1), "value out of range")
# Error ID: /net/mizu/usr/re/hotsparc1.0.1/src/solaris_only/hotsparc_beta_jvmg/build/solaris/../../src/cpu/sparc/vm/assembler_sparc.hpp, 954 [ Unknown ]
#
Dumping core....
Abort (core dumped)
novo63%
SOURCES:
========
#--------------------- args00127.opts:
+PrintInterpreter
+PrintBytecodeHistogram
+PrintBytecodePairHistogram
+PrintSignatureHandlers
+VerifyOops
+VerifyFPU
+VerifyThread
+VerifyActivationFrameSize
+VerifyReceiver
+VerifyCounterOverflow
//--------------------- args00127.java:
//args00127.java
/* This test simply creates a series of circularly
* linked memeory objects which should be able to be
* GC'd
*/
class MemoryObject
{
byte array[];
MemoryObject next;
MemoryObject previous;
public MemoryObject(int size)
{
array = new byte[size];
}
}
class args00127
{
static final int ARRAY_SIZE = 100;
static final int OBJECT_SIZE = 10;
static final int LOOP_COUNT = 5;
static final int CIRCULARITY_SIZE = 3;
static MemoryObject memoryArray[] = new MemoryObject[ARRAY_SIZE];
public static void main(String args[])
{
for (int j = 0; j < LOOP_COUNT; j++)
{
System.out.println(j + ": " + Runtime.getRuntime().freeMemory());
for (int i = 0; i < ARRAY_SIZE; i ++)
{
memoryArray[i] = new MemoryObject(OBJECT_SIZE);
makeCircular(memoryArray[i], CIRCULARITY_SIZE);
}
}
// if there's any memory left, let's assume it's okay
System.out.println("Test passed.");
}
public static void makeCircular(MemoryObject mObj, int depth)
{
MemoryObject tmpObj = mObj;
for (int i = 0; i < depth; i++)
{
tmpObj.next = new MemoryObject(OBJECT_SIZE);
tmpObj= tmpObj.next;
}
tmpObj.next = mObj;
}
public static void confirmCircular(MemoryObject mObj)
{
int count = 0;
MemoryObject mObj2 = mObj;
while (mObj2.next != mObj)
{
count++;
mObj2 = mObj2.next;
}
System.out.println("Circularity level: " + count);
}
}
//---------------------
======================================================================
timothy.cramer@central 2000-02-09