I'd like to add the following work around for JDK-8248876 so it no longer causes an NPE every time you try to use "findpc" functionality for the work being done for JDK-8247514. The only user of the LoadObjects that cares about the "base" address is loadObjectContainingPC(). The easy fix is to just add a null check before using "base" to determine if the PC is in the LoadObject:
if (base == null) continue; // Skip. LoadObject was not properly initialized.
if (pc.greaterThanOrEqual(base) && pc.lessThan(base.addOffsetTo(size))) {
return ob;
}
The only short coming of this fix is that address -> symbol lookups for addresses in the exec file (bin/java) will fail. This is not something that an SA user is ever likely to run into. Symbols of interest are typically in libjvm.so.