public ThreadProxy getThreadProxy(Address addr) { // Addr is the address of the JavaThread. // Fetch the OSThread (for now and for simplicity, not making a // separate "OSThread" class in this package) Address osThreadAddr = osThreadField.getValue(addr); // Get the address of the _thread_id from the OSThread Address threadIdAddr = osThreadAddr.addOffsetTo(osThreadThreadIDField.getOffset()); JVMDebugger debugger = VM.getVM().getDebugger(); return debugger.getThreadForIdentifierAddress(threadIdAddr); }
public String getDescription() { return CStringUtilities.getString(descriptionField.getValue(addr)); }
public Address getLastJavaFP(Address addr) { return lastJavaFPField.getValue( addr.addOffsetTo(sun.jvm.hotspot.runtime.JavaThread.getAnchorField().getOffset())); }
/** Breakpoint support (see methods on methodOop for details) */ public BreakpointInfo getBreakpoints() { Address addr = getHandle().getAddressAt(Oop.getHeaderSize() + breakpoints.getOffset()); return (BreakpointInfo) VMObjectFactory.newObject(BreakpointInfo.class, addr); }
// get associated compiled native method, if available, else return null. public NMethod getNativeMethod() { Address addr = code.getValue(getHandle()); return (NMethod) VMObjectFactory.newObject(NMethod.class, addr); }