private static String getLimitedToString(ObjectVariable v) throws InvalidExpressionException { String toString = null; try { java.lang.reflect.Method toStringMethod = v.getClass().getMethod("getToStringValue", // NOI18N new Class[] { Integer.TYPE }); toStringMethod.setAccessible(true); toString = (String) toStringMethod.invoke(v, TO_STRING_LENGTH_LIMIT); } catch (Exception ex) { Exceptions.printStackTrace(ex); } if (toString == null) { toString = v.getToStringValue(); } return toString; }
static Variable getDescriptionValueObject(Variable descVar) { return ((ObjectVariable) descVar).getField(FIELD_DESC_VALUE_AS_OBJECT); }
static Variable[] getValueInfos(JPDADebugger debugger, Variable scope, boolean all) { List<JPDAClassType> supportClasses = debugger.getClassesByName(DEBUGGER_SUPPORT_CLASS); if (supportClasses.isEmpty()) { return null; } JPDAClassType supportClass = supportClasses.get(0); Variable[] args = new Variable[2]; try { args[0] = scope; args[1] = debugger.createMirrorVar(all, true); ObjectVariable infosVar = (ObjectVariable) supportClass.invokeMethod(METHOD_VALUE_INFOS, SIGNAT_VALUE_INFOS, args); return infosVar.getFields(0, Integer.MAX_VALUE); } catch (InvalidObjectException ioex) { return null; } catch (NoSuchMethodException | InvalidExpressionException nsmex) { Exceptions.printStackTrace(nsmex); return null; } }
private static Variable adjustQuotes(JPDADebugger debugger, ObjectVariable strVar) { String str = strVar.getValue(); str = str.substring(1, str.length() - 1); // getValue() adds quotes if (str.length() > 2 && str.startsWith("\"") && str.endsWith("\"")) { str = str.substring(1, str.length() - 1); try { return debugger.createMirrorVar(str); } catch (InvalidObjectException ex) { } } return strVar; }
if (supportClasses.isEmpty()) { try { return ov.getToStringValue(); } catch (InvalidExpressionException ex) { Exceptions.printStackTrace(ex); try { return ov.getToStringValue(); } catch (InvalidExpressionException iex) { return ov.getToStringValue(); } catch (InvalidExpressionException iex) {
static boolean isDescriptionExpandable(Variable descVar) { Field expandableField = ((ObjectVariable) descVar).getField(FIELD_DESC_EXPANDABLE); return "true".equals(expandableField.getValue()); }
toString = ((ObjectVariable) v).getToStringValue();
static String getDescriptionValue(Variable descVar) { Field valueAsStringField = ((ObjectVariable) descVar).getField(FIELD_DESC_VALUE_AS_STRING); return removeQuotes(valueAsStringField.getValue()); }
String toString = ((ObjectVariable) v).getToStringValue(); toolTipText = expression + " = " + (type.length () == 0 ?
static String getDescriptionKey(Variable descVar) { Field keyField = ((ObjectVariable) descVar).getField(FIELD_DESC_KEY); return removeQuotes(keyField.getValue()); }
String toString = ((ObjectVariable) v).getToStringValue(); toolTipText = expression + " = " + (type.length () == 0 ?
Variable v = d.evaluate(text); if (v instanceof ObjectVariable) { toolTipText = textForTooltip + " = (" + v.getType() + ")" + ((ObjectVariable)v).getToStringValue(); } else { toolTipText = textForTooltip + " = (" + v.getType() + ")" + v.getValue();
public static Source getSource(JPDADebugger debugger, JPDAClassType classType, ObjectVariable sourceVar) { long uniqueClassID = classType.classObject().getUniqueID(); Field fieldName = sourceVar.getField(SOURCE_VAR_NAME); Field fieldContent = sourceVar.getField(SOURCE_VAR_CONTENT); Field fieldHash = sourceVar.getField(SOURCE_VAR_HASH); Field fieldURL = sourceVar.getField(SOURCE_VAR_URL); if (fieldContent == null && fieldURL == null) { Field fieldData = sourceVar.getField(SOURCE_VAR_DATA); if (fieldData != null && fieldData instanceof ObjectVariable) { fieldURL = ((ObjectVariable) fieldData).getField(SOURCE_VAR_URL); fieldContent = ((ObjectVariable) fieldData).getField(SOURCE_VAR_DATA_ARRAY);
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}); }