###@###.### 2004-08-13
I'm working on the following AsyncGetCallTrace() bug for the Analyzer team:
5076868 3/2 AsyncGetCallTrace returns zero frames when in SharedRuntime::dsin()
I now have things working for Solaris SPARC Client and Server VM and
for Solaris X86 Client VM. Solaris X86 Server VM is being more stubborn.
AsyncGetCallTrace() is not able to walk a stack that contains a call to
SharedRuntime::dsin() on Solaris X86 Server VM. I added the following
to the dsin() function after local variable initialization:
{
char *cp = 0;
*cp = 0;
}
This generates a nice crash right where we need it and I discover that
the debugger can't walk the stack either. At this point, I figure that
I'm in way too deep and need a compiler specific bug.
Here is the original customer test program:
% cat foo.java
public class foo {
public static void main(String args[]) {
int i;
double a = 0.0;
for (i = 0; i < 10000000; i++)
a += 0.001 * java.lang.Math.sin(0.001 * i);
System.out.println(a);
}
}
I'm using something a little bit different in my Forte Quality kit so
contact me if you need to use my kit to chase this down. I don't think
you will. The above program and the small modification to SharedRuntime:dsin()
should generate a crash quite nicely.
I'm working on the following AsyncGetCallTrace() bug for the Analyzer team:
5076868 3/2 AsyncGetCallTrace returns zero frames when in SharedRuntime::dsin()
I now have things working for Solaris SPARC Client and Server VM and
for Solaris X86 Client VM. Solaris X86 Server VM is being more stubborn.
AsyncGetCallTrace() is not able to walk a stack that contains a call to
SharedRuntime::dsin() on Solaris X86 Server VM. I added the following
to the dsin() function after local variable initialization:
{
char *cp = 0;
*cp = 0;
}
This generates a nice crash right where we need it and I discover that
the debugger can't walk the stack either. At this point, I figure that
I'm in way too deep and need a compiler specific bug.
Here is the original customer test program:
% cat foo.java
public class foo {
public static void main(String args[]) {
int i;
double a = 0.0;
for (i = 0; i < 10000000; i++)
a += 0.001 * java.lang.Math.sin(0.001 * i);
System.out.println(a);
}
}
I'm using something a little bit different in my Forte Quality kit so
contact me if you need to use my kit to chase this down. I don't think
you will. The above program and the small modification to SharedRuntime:dsin()
should generate a crash quite nicely.
- relates to
-
JDK-5076868 AsyncGetCallTrace returns zero frames when in SharedRuntime::dsin()
- Resolved