static MethodBreakpoint createBreakpoint(String stopClassName) { MethodBreakpoint breakpoint = MethodBreakpoint.create( stopClassName, "*" //NOI18N ); breakpoint.setHidden(true); DebuggerManager.getDebuggerManager().addBreakpoint(breakpoint); return breakpoint; }
private void scriptToBeInvoked(ObjectVariable mh) { ObjectVariable member = (ObjectVariable) mh.getField("member"); if (!(member instanceof ObjectVariable)) { logger.info("Variable "+mh+" does not have member field: "+member); return ; } ObjectVariable clazz = (ObjectVariable) member.getField("clazz"); if (!(clazz instanceof ClassVariable)) { logger.info("Variable "+mh+" does not have clazz field: "+clazz); return ; } //JPDAClassType classType = ((ClassVariable) clazz).getReflectedType(); JPDAClassType classType; try { classType = (JPDAClassType) clazz.getClass().getMethod("getReflectedType").invoke(clazz); } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException ex) { Exceptions.printStackTrace(ex); return ; } String className = classType.getName(); MethodBreakpoint mb = MethodBreakpoint.create(className, ""); mb.setHidden(true); mb.setSuspend(debugger.getSuspend()); mb.setSession(debugger); mb.addJPDABreakpointListener(new InScriptBPListener(mb)); DebuggerManager.getDebuggerManager().addBreakpoint(mb); logger.log(Level.FINE, "Created {0} for any method in {1}", new Object[]{mb, className}); }
@Override public Breakpoint[] initBreakpoints() { scriptBP = ClassLoadUnloadBreakpoint.create(JSUtils.NASHORN_SCRIPT+"*", false, ClassLoadUnloadBreakpoint.TYPE_CLASS_LOADED); scriptBP.setHidden(true); scriptBP.setSuspend(EventRequest.SUSPEND_NONE); sourceBindBP = MethodBreakpoint.create(NASHORN_CONTEXT_CLASS, NASHORN_CONTEXT_SOURCE_BIND_METHOD); sourceBindBP.setHidden(true); sourceBindBP.setSuspend(EventRequest.SUSPEND_EVENT_THREAD); return new Breakpoint[] { scriptBP, sourceBindBP }; }
scriptMethodBP.setHidden(true); scriptMethodBP.setSuspend(EventRequest.SUSPEND_EVENT_THREAD); scriptMethodBP.setSession(debugger);
String method = SCRIPT_ACCESS_METHODS[i]; MethodBreakpoint mb = MethodBreakpoint.create(SCRIPT_ACCESS_CLASS, method); mb.setHidden(true); mb.setSuspend(debugger.getSuspend()); mb.setSession(debugger); SCRIPT_NOTIFY_INVOKE_METHOD); notifyInvokeBP.setMethodSignature(SCRIPT_NOTIFY_INVOKE_METHOD_SIG); notifyInvokeBP.setHidden(true); notifyInvokeBP.setSuspend(debugger.getSuspend()); notifyInvokeBP.setSession(debugger);