} else if (b instanceof MethodBreakpoint) { MethodBreakpoint mb = (MethodBreakpoint) b; String[] filters = mb.getClassFilters(); int[] lns = new int[] {}; for (int i = 0; i < filters.length; i++) { fo, filters[i], mb.getClassExclusionFilters(), mb.getMethodName(), mb.getMethodSignature()); if (lns.length == 0) { lns = newlns;
String[] cf = b.getClassFilters (); className = ClassBreakpointPanel.concatClassFilters(cf); tfClassName = new JEditorPane("text/x-scala", className); jLabel3.setLabelFor(tfClassName); panelClassName.add(java.awt.BorderLayout.CENTER, WatchPanel.createScrollableLineEditor(tfClassName)); if ("".equals (b.getMethodName ())) { tfMethodName.setText (org.openide.util.NbBundle.getMessage(MethodBreakpointPanel.class, "Method_Breakpoint_ALL_METHODS")); cbAllMethods.setSelected (true); tfMethodName.setEnabled (false); } else { tfMethodName.setText (b.getMethodName () + " " + createParamTypesFromSignature(b.getMethodSignature())); switch (b.getBreakpointType ()) { case MethodBreakpoint.TYPE_METHOD_ENTRY: cbBreakpointType.setSelectedIndex (0); conditionsPanel.setCondition(b.getCondition()); conditionsPanel.setHitCountFilteringStyle(b.getHitCountFilteringStyle()); conditionsPanel.setHitCount(b.getHitCountFilter()); cPanel.add(conditionsPanel, "Center");
for (int i = 0; i < mbn; i++) { String method = SCRIPT_ACCESS_METHODS[i]; MethodBreakpoint mb = MethodBreakpoint.create(SCRIPT_ACCESS_CLASS, method); mb.setHidden(true); mb.setSuspend(debugger.getSuspend()); mb.setSession(debugger); mb.disable(); mb.addJPDABreakpointListener(sbl); DebuggerManager.getDebuggerManager().addBreakpoint(mb); scriptAccessBPs[i] = mb; notifyInvokeBP = MethodBreakpoint.create(DebuggerSupport.DEBUGGER_SUPPORT_CLASS, SCRIPT_NOTIFY_INVOKE_METHOD); notifyInvokeBP.setMethodSignature(SCRIPT_NOTIFY_INVOKE_METHOD_SIG); notifyInvokeBP.setHidden(true); notifyInvokeBP.setSuspend(debugger.getSuspend()); notifyInvokeBP.setSession(debugger); notifyInvokeBP.disable(); notifyInvokeBP.addJPDABreakpointListener(sibl); DebuggerManager.getDebuggerManager().addBreakpoint(notifyInvokeBP); notifyInvokeBP.addPropertyChangeListener(Breakpoint.PROP_VALIDITY, new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) {
@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 }; }
String[] filters = ((MethodBreakpoint) b).getClassFilters(); String[] urls = new String[] {}; int[] lns = new int[] {}; for (int j = 0; j < newUrls.length; j++) { newlns[j] = getContext().getMethodLineNumber(newUrls[j], filters[i], ((MethodBreakpoint) b).getMethodName(), ((MethodBreakpoint) b).getMethodSignature()); condition = ((MethodBreakpoint) b).getCondition(); } else { return null;
private static MethodBreakpoint findBreakpoint(String className, String methodName, String methodSignature) { Breakpoint[] breakpoints = DebuggerManager.getDebuggerManager().getBreakpoints(); for (int i = 0; i < breakpoints.length; i++) { if (!(breakpoints[i] instanceof MethodBreakpoint)) { continue; } MethodBreakpoint mb = (MethodBreakpoint) breakpoints[i]; String[] classFilters = mb.getClassFilters(); int j; for (j = 0; j < classFilters.length; j++) { if (match(className, classFilters[j])) { break; } } if (j < classFilters.length) { if (!mb.getMethodName().equals(methodName)) continue; String signature = mb.getMethodSignature(); if (signature == null || egualMethodSignatures(signature, methodSignature)) { return mb; } } } return null; }
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}); }
breakpoint.setClassFilters (new String[] {className}); if (!cbAllMethods.isSelected ()) { String methodAndSignature = tfMethodName.getText ().trim (); signature = createSignatureFromParamTypes(signature); breakpoint.setMethodName (methodName); breakpoint.setMethodSignature(signature); } else { breakpoint.setMethodName (""); breakpoint.setBreakpointType (MethodBreakpoint.TYPE_METHOD_ENTRY); break; case 1: breakpoint.setBreakpointType (MethodBreakpoint.TYPE_METHOD_EXIT); break; case 2: breakpoint.setBreakpointType (MethodBreakpoint.TYPE_METHOD_ENTRY | MethodBreakpoint.TYPE_METHOD_EXIT); break; breakpoint.setCondition (conditionsPanel.getCondition()); breakpoint.setHitCountFilter(conditionsPanel.getHitCount(), conditionsPanel.getHitCountFilteringStyle());
private static MethodBreakpoint createBreakpoint () { String className; try { className = EditorContextBridge.getContext().getCurrentClassName(); } catch (java.awt.IllegalComponentStateException icsex) { className = ""; } String methodName; try { methodName = EditorContextBridge.getContext().getCurrentMethodName(); } catch (java.awt.IllegalComponentStateException icsex) { methodName = ""; } MethodBreakpoint mb = MethodBreakpoint.create ( className, methodName ); try { mb.setMethodSignature(EditorContextBridge.getCurrentMethodSignature()); } catch (java.awt.IllegalComponentStateException icsex) {} mb.setPrintText ( NbBundle.getBundle (MethodBreakpointPanel.class).getString ("CTL_Method_Breakpoint_Print_Text") ); return mb; }
/** * Gets the condition of a breakpoint. * @param b The breakpoint * @return The condition or empty {@link String} if no condition is supported. */ static String getCondition(Breakpoint b) { if (!(b instanceof JPDABreakpoint)) { return ""; // e.g. JSP breakpoints } if (b instanceof LineBreakpoint) { return ((LineBreakpoint) b).getCondition(); } else if (b instanceof FieldBreakpoint) { return ((FieldBreakpoint) b).getCondition(); } else if (b instanceof MethodBreakpoint) { return ((MethodBreakpoint) b).getCondition(); } else if (b instanceof ClassLoadUnloadBreakpoint) { return ""; } else { throw new IllegalStateException(b.toString()); } }
b.setPrintText(NbBundle.getMessage(FieldBreakpointPanel.class, "CTL_Field_Breakpoint_Print_Text")); } else { b = MethodBreakpoint.create(className, methodName); ((MethodBreakpoint) b).setMethodSignature(methodSignature); b.setPrintText(NbBundle.getMessage(MethodBreakpointPanel.class, "CTL_Method_Breakpoint_Print_Text"));
MethodBreakpoint scriptMethodBP = MethodBreakpoint.create(scriptType.getName(), "*getMap"); scriptMethodBP.setHidden(true); scriptMethodBP.setSuspend(EventRequest.SUSPEND_EVENT_THREAD); scriptMethodBP.setSession(debugger); scriptMethodBP.addJPDABreakpointListener(this); DebuggerManager.getDebuggerManager().addBreakpoint(scriptMethodBP); synchronized (scriptAccessBreakpoints) {
/** * Gets the condition of a breakpoint. * @param b The breakpoint * @return The condition or empty {@link String} if no condition is supported. */ static String getCondition(Breakpoint b) { if (!(b instanceof JPDABreakpoint)) { return ""; // e.g. JSP breakpoints } if (b instanceof LineBreakpoint) { return ((LineBreakpoint) b).getCondition(); } else if (b instanceof FieldBreakpoint) { return ((FieldBreakpoint) b).getCondition(); } else if (b instanceof MethodBreakpoint) { return ((MethodBreakpoint) b).getCondition(); } else if (b instanceof ClassLoadUnloadBreakpoint) { return ""; } else { throw new IllegalStateException(b.toString()); } }
} else if (b instanceof MethodBreakpoint) { MethodBreakpoint mb = (MethodBreakpoint) b; String[] filters = mb.getClassFilters(); int[] lns = new int[] {}; for (int i = 0; i < filters.length; i++) { fo, filters[i], mb.getClassExclusionFilters(), mb.getMethodName(), mb.getMethodSignature()); int[] newlns; if (futurelns != null) {
condition = ((FieldBreakpoint) b).getCondition(); } else if (b instanceof MethodBreakpoint) { condition = ((MethodBreakpoint) b).getCondition(); } else { throw new IllegalStateException(b.toString());
} else if (b instanceof MethodBreakpoint) { MethodBreakpoint mb = (MethodBreakpoint) b; String[] filters = mb.getClassFilters(); int[] lns = new int[] {}; for (int i = 0; i < filters.length; i++) { fo, filters[i], mb.getClassExclusionFilters(), mb.getMethodName(), mb.getMethodSignature()); int[] newlns; if (futurelns != null) {
String methodName = mb.getMethodName(); String[] classFilters = mb.getClassFilters(); if (classFilters.length < 1) { return ; fo, className, mb.getClassExclusionFilters(), methodName, mb.getMethodSignature() ); if (fi.isDone()) {
String methodName = mb.getMethodName(); String[] classFilters = mb.getClassFilters(); if (classFilters.length < 1) { return ; fo, className, mb.getClassExclusionFilters(), methodName, mb.getMethodSignature() ); if (fi.isDone()) {
} else if (b instanceof MethodBreakpoint) { MethodBreakpoint mb = (MethodBreakpoint) b; String methodName = mb.getMethodName(); String[] classFilters = mb.getClassFilters(); if (classFilters.length < 1) return ; String className = classFilters[0]; fo, className, mb.getClassExclusionFilters(), methodName, mb.getMethodSignature() ); if (lineNumbers.length == 0) lineNumber = 1;