Support J9 / OpenJ9 ucontext (registers) by bric3 · Pull Request #10959 · DataDog/dd-trace-java

@bric3

Parse the GPINFO register section (1XHREGISTERS / 2XHREGISTER tags)
from J9/OpenJ9 javacore crash dumps mirroring what was done for HotSpot.

Register format:
  1XHREGISTERS   Registers:
  2XHREGISTER      RIP: 00007F8B7C0B3D7D   (x86-64)
  2XHREGISTER      PC:  0000FFFF98B9FB6C   (aarch64)

Added crash dumps from IBM J9 (Java 8) and IBM Semeru / OpenJ9 (Java 11)
that were obtained using Docker and this crashing program:

```java
import sun.misc.Unsafe;
import java.lang.reflect.Field;
public class Crash {
    public static void main(String[] args) throws Exception {
        Field f = Unsafe.class.getDeclaredField("theUnsafe");
        f.setAccessible(true);
        Unsafe unsafe = (Unsafe) f.get(null);
        unsafe.putInt(0L, 42); // SIGSEGV -> GPF dump
    }
}
```

```
docker run --rm -v /tmp/j9-crash-test:/work ibmjava:8-sdk \
  bash -c "cd /work && javac Crash.java && \
           java -Xdump:java:events=gpf,file=/work/javacore.ibmj9.txt Crash"
```

```
docker run --rm -v /tmp/j9-crash-test:/work ibm-semeru-runtimes:open-11-jdk \
  bash -c "cd /work && javac Crash.java && \
           java -Xdump:java:events=gpf,file=/work/javacore.openj9.txt Crash"
```