public IResult execute(IProgressListener listener) throws Exception { int[] finalizerThreadObjects = FinalizerThreadQuery.getFinalizerThreads(snapshot); SetInt result = new SetInt(); for (int finalizerThreadObject : finalizerThreadObjects) { Field localsField = ((IInstance) snapshot.getObject(finalizerThreadObject)) .getField("threadLocals"); // $NON-NLS-1$ if (localsField != null) { ObjectReference ref = (ObjectReference) localsField.getValue(); if (ref != null) { // TODO Don't add the thread locals object, but the pairs of // referent and value stored in the thread locals result.add(ref.getObjectId()); } } } return new ObjectListResult.Outbound(snapshot, result.toArray()); }
public String toString() { return "Field:" + field.toString(); // $NON-NLS-1$//$NON-NLS-2$ }