protected void removeFieldRequests(final JDIDebugTarget target) { final EventRequestManager manager = target.getEventRequestManager(); if (manager != null && !fieldRequests.isEmpty()) { try { manager.deleteEventRequests(fieldRequests); for (final EventRequest request : fieldRequests) { target.removeJDIEventListener( request instanceof AccessWatchpointRequest ? fieldReadHandler : fieldWriteHandler, request); } } catch (final RuntimeException e) { JiveDebugPlugin.log(e); } } }
public AccessWatchpointRequest createAccessWatchpointRequest(Field field) { validateMirror(field); if (!vm.canWatchFieldAccess()) { throw new UnsupportedOperationException( "target VM does not support access watchpoints"); } return new AccessWatchpointRequestImpl(field); }
public static List<AccessWatchpointRequest> wrapAccessWatchpointRequests( F3VirtualMachine f3vm, List<AccessWatchpointRequest> reqs) { if (reqs == null) { return null; } List<AccessWatchpointRequest> result = new ArrayList<AccessWatchpointRequest>(); for (AccessWatchpointRequest req : reqs) { result.add(wrap(f3vm, req)); } return result; }
protected void createFieldRequests(final JDIDebugTarget target, final ReferenceType refType) { final EventRequestManager manager = target.getEventRequestManager(); if (manager != null) { try { // monitor all non-synthetic fields of the prepared classes for reads/writes for (final Object o : refType.fields()) { final Field f = (Field) o; // Ignore compiler generated fields if (!f.isSynthetic() && f.name().indexOf("$") == -1) { // monitor field reads final AccessWatchpointRequest readRequest = manager.createAccessWatchpointRequest(f); readRequest.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); readRequest.enable(); fieldRequests.add(readRequest); target.addJDIEventListener(fieldReadHandler, readRequest); // monitor field writes final ModificationWatchpointRequest writeRequest = manager .createModificationWatchpointRequest(f); writeRequest.setSuspendPolicy(EventRequest.SUSPEND_EVENT_THREAD); writeRequest.enable(); fieldRequests.add(writeRequest); target.addJDIEventListener(fieldWriteHandler, writeRequest); } } } catch (final RuntimeException e) { JiveDebugPlugin.log(e); } } }
public List<AccessWatchpointRequest> accessWatchpointRequests() { return (List<AccessWatchpointRequest>)unmodifiableRequestList(JDWP.EventKind.FIELD_ACCESS); }
public F3AccessWatchpointRequest(F3VirtualMachine f3vm, AccessWatchpointRequest underlying) { super(f3vm, underlying); }
@Override protected AccessWatchpointRequest underlying() { return (AccessWatchpointRequest) super.underlying(); }
public List<AccessWatchpointRequest> accessWatchpointRequests() { return F3EventRequest.wrapAccessWatchpointRequests(virtualMachine(), underlying().accessWatchpointRequests()); }
public static F3EventRequest wrap(F3VirtualMachine f3vm, EventRequest req) { if (req == null) { return null; } if (req instanceof AccessWatchpointRequest) { return new F3AccessWatchpointRequest(f3vm, (AccessWatchpointRequest)req); } else if (req instanceof BreakpointRequest) { return new F3BreakpointRequest(f3vm, (BreakpointRequest)req); } else if (req instanceof ClassPrepareRequest) { return new F3ClassPrepareRequest(f3vm, (ClassPrepareRequest)req); } else if (req instanceof ClassUnloadRequest) { return new F3ClassUnloadRequest(f3vm, (ClassUnloadRequest)req); } else if (req instanceof ExceptionRequest) { return new F3ExceptionRequest(f3vm, (ExceptionRequest)req); } else if (req instanceof MethodEntryRequest) { return new F3MethodEntryRequest(f3vm, (MethodEntryRequest)req); } else if (req instanceof MethodExitRequest) { return new F3MethodExitRequest(f3vm, (MethodExitRequest)req); } else if (req instanceof ModificationWatchpointRequest) { return new F3ModificationWatchpointRequest(f3vm, (ModificationWatchpointRequest)req); } else if (req instanceof MonitorContendedEnterRequest) { return new F3MonitorContendedEnterRequest(f3vm, (MonitorContendedEnterRequest)req); } else if (req instanceof MonitorContendedEnteredRequest) { return new F3MonitorContendedEnteredRequest(f3vm, (MonitorContendedEnteredRequest)req); } else if (req instanceof MonitorWaitRequest) { return new F3MonitorWaitRequest(f3vm, (MonitorWaitRequest)req); } else if (req instanceof MonitorWaitedRequest) { return new F3MonitorWaitedRequest(f3vm, (MonitorWaitedRequest)req); } else if (req instanceof StepRequest) { return new F3StepRequest(f3vm, (StepRequest)req); } else if (req instanceof ThreadDeathRequest) { return new F3ThreadDeathRequest(f3vm, (ThreadDeathRequest)req); } else if (req instanceof ThreadStartRequest) { return new F3ThreadStartRequest(f3vm, (ThreadStartRequest)req); } else if (req instanceof VMDeathRequest) { return new F3VMDeathRequest(f3vm, (VMDeathRequest)req); } else if (req instanceof WatchpointRequest) { return new F3WatchpointRequest(f3vm, (WatchpointRequest)req); } else { return new F3EventRequest(f3vm, req); } }
public static F3AccessWatchpointRequest wrap( F3VirtualMachine f3vm, AccessWatchpointRequest req) { return (req == null)? null : new F3AccessWatchpointRequest(f3vm, req); }