public Frame getCurrentFrameGuess(JavaThread thread, Address addr) { ThreadProxy t = getThreadProxy(addr); X86ThreadContext context = (X86ThreadContext) t.getContext(); X86CurrentFrameGuess guesser = new X86CurrentFrameGuess(context, thread); if (!guesser.run(GUESS_SCAN_RANGE)) { return null; } if (guesser.getPC() == null) { return new X86Frame(guesser.getSP(), guesser.getFP()); } else { return new X86Frame(guesser.getSP(), guesser.getFP(), guesser.getPC()); } }
public Address getLastSP(Address addr) { ThreadProxy t = getThreadProxy(addr); X86ThreadContext context = (X86ThreadContext) t.getContext(); return context.getRegisterAsAddress(X86ThreadContext.ESP); }