< prev index next >

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java

Print this page

        

*** 148,163 **** @Override public CFrame sender(ThreadProxy thread) { ThreadContext context = thread.getContext(); ! Address nextPC = getNextPC(dwarf != null); 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; } --- 148,173 ---- @Override public CFrame sender(ThreadProxy thread) { ThreadContext context = thread.getContext(); ! 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; + } + } Address nextCFA = getNextCFA(nextDwarf, context); return isValidFrame(nextCFA, context) ? new LinuxAMD64CFrame(dbg, nextCFA, nextPC, nextDwarf) : null; }
< prev index next >