< prev index next >
src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java
Print this page
@@ -148,16 +148,26 @@
@Override
public CFrame sender(ThreadProxy thread) {
ThreadContext context = thread.getContext();
- Address nextPC = getNextPC(dwarf != null);
+ Address nextPC;
+ DwarfParser nextDwarf;
+ try {
+ nextPC = getNextPC(dwarf != null);
if (nextPC == null) {
return null;
}
+ nextDwarf = getNextDwarf(nextPC);
+ } catch (DebuggerException e) { // Bail out to Java frame case
+ nextDwarf = null;
+ nextPC = getNextPC(false);
+ if (nextPC == null) {
+ return null;
+ }
+ }
- DwarfParser nextDwarf = getNextDwarf(nextPC);
Address nextCFA = getNextCFA(nextDwarf, context);
return isValidFrame(nextCFA, context) ? new LinuxAMD64CFrame(dbg, nextCFA, nextPC, nextDwarf)
: null;
}
< prev index next >