SIGSEGV when debugging an overriden defender method
Peter Levart
peter.levart at marand.si
Thu May 10 02:57:42 PDT 2012
I'm trying to debug code compiled and run by the latest lambda JDK (hg rev
5323 (8310b83837de)) with:
-agentlib:jdwp=transport=dt_socket,address=127.0.0.1:60486,suspend=y,server=n
and get a SIGSEGV from JVM immediately after debug session starts (connection
to debugger is established):
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f55398405d9, pid=18635, tid=140003423139584
#
# JRE version: 8.0
# Java VM: OpenJDK 64-Bit Server VM (24.0-b07 mixed mode linux-amd64
compressed oops)
# Problematic frame:
# V [libjvm.so+0x5c95d9] JvmtiEnv::GetClassMethods(oopDesc*, int*,
_jmethodID***)+0x249
The code normally runs without a problem (when not debugging). It also runs to
completion when debugging but no breakpoints are set.
I traced down the crash to occur when the breakpoint is set inside a method in
a class that @Overrides a defender method from the interface.
Here's an example:
import java.util.*;
public class SimpleTest
{
static class MyList<T> extends ArrayList<T>
{
@Override
public Iterable<T> sorted(Comparator<? super T> comparator)
{
return super.sorted(comparator); // <- put breakpoint HERE!
}
}
public static void main(String[] args)
{
MyList<String> strings = new MyList<>();
strings.add("aaa");
strings.add("bbb");
strings.add("ccc");
System.out.println(strings.sorted(Comparators.reverseOrder()));
}
}
I can send the hs_errXXX.log file if needed, but I think the above example can
be used to reproduce the problem...
Regards,
Peter
More information about the lambda-dev
mailing list