diff --git a/bin/org/ntlab/traceDebugger/analyzerProvider/ObjectFlowAnalyzerLaunchConfiguration.class b/bin/org/ntlab/traceDebugger/analyzerProvider/ObjectFlowAnalyzerLaunchConfiguration.class deleted file mode 100644 index 4789c96..0000000 --- a/bin/org/ntlab/traceDebugger/analyzerProvider/ObjectFlowAnalyzerLaunchConfiguration.class +++ /dev/null Binary files differ diff --git a/bin/org/ntlab/traceDebugger/analyzerProvider/ReferencePoint.class b/bin/org/ntlab/traceDebugger/analyzerProvider/ReferencePoint.class deleted file mode 100644 index 8c0eb7e..0000000 --- a/bin/org/ntlab/traceDebugger/analyzerProvider/ReferencePoint.class +++ /dev/null Binary files differ diff --git a/plugin.xml b/plugin.xml index b70ff84..41db483 100644 --- a/plugin.xml +++ b/plugin.xml @@ -48,7 +48,7 @@ + class="org.ntlab.traceDebugger.analyzerProvider.DeltaExtractionAnalyzerLaunchConfiguration"> methodExecutions = new ArrayList<>(); private boolean isAvailable = false; -// private int currentIndex = 0; public TraceBreakPoint(String methodSignature, int lineNo, long currentTime) { this.methodSignature = methodSignature; this.lineNo = lineNo; isAvailable = initTracePoints(methodSignature, lineNo); -// if (isAvailable) forwardIndex(currentTime); } private boolean initTracePoints(String methodSignature, int lineNo) { @@ -35,7 +33,6 @@ for (Statement statement : me.getStatements()) { if (statement.getLineNo() == lineNo) { tracePoints.add(me.getTracePoint(order)); -// break; } order++; } @@ -47,8 +44,7 @@ long o1Time = getTime(o1); long o2Time = getTime(o2); return (o1Time < o2Time) ? -1 : 1; - } - + } private long getTime(TracePoint tp) { Statement statement = tp.getStatement(); if (statement instanceof MethodInvocation) { @@ -75,70 +71,12 @@ public List getTracePoints() { return tracePoints; } - - + public boolean isAvailable() { return isAvailable; } public void changeAvailable() { isAvailable = !isAvailable; - } - -// public void reset() { -// initTracePoints(methodSignature, lineNo); -// currentIndex = 0; -// } -// -// public TracePoint peekTracePoint() { -// if ((currentIndex < 0) || (currentIndex >= tracePoints.size())) return null; -// return tracePoints.get(currentIndex); -// } -// -// public TracePoint previousTracePoint() { -// if ((currentIndex - 1 < 0) || (currentIndex - 1 >= tracePoints.size())) return null; -// return tracePoints.get(currentIndex - 1); -// } -// -// public TracePoint dequeueTracePoint(boolean isForward) { -// TracePoint result = null; -// if (isForward) { -// result = peekTracePoint(); -// currentIndex++; -// } else { -// result = previousTracePoint(); -// currentIndex--; -// } -// return result; -// } -// -// public void forwardIndex(long currentTime) { -// int start = currentIndex; -// for (int i = start; i < tracePoints.size(); i++) { -// long time = getTime(tracePoints.get(i).getStatement()); -// if (time > currentTime) { -// currentIndex = i; -// return; -// } -// } -// currentIndex = tracePoints.size(); -// } -// -// public void reverseIndex(long currentTime) { -// for (int i = tracePoints.size() - 1; i >= 0; i--) { -// long time = getTime(tracePoints.get(i).getStatement()); -// if (time <= currentTime) { -// currentIndex = i + 1; -// return; -// } -// } -// currentIndex = 0; -// } -// -// private long getTime(Statement statement) { -// if (statement instanceof MethodInvocation) { -// return ((MethodInvocation)statement).getCalledMethodExecution().getEntryTime(); -// } -// return statement.getTimeStamp(); -// } + } } diff --git a/src/org/ntlab/traceDebugger/TraceBreakPoints.java b/src/org/ntlab/traceDebugger/TraceBreakPoints.java index 0787f1a..13e0150 100644 --- a/src/org/ntlab/traceDebugger/TraceBreakPoints.java +++ b/src/org/ntlab/traceDebugger/TraceBreakPoints.java @@ -269,72 +269,4 @@ } System.out.println(); } - -// public TracePoint getNextTracePoint(long currentTime) { -// TraceBreakPoint resultTbp = null; -// long resultTpTime = 0L; -// for (Map innerMap : traceBreakPoints.values()) { -// for (TraceBreakPoint tbp: innerMap.values()) { -// if (!tbp.isAvailable()) continue; -// TracePoint tp = tbp.peekTracePoint(); -// if (tp == null) continue; -// long tpTime = tp.getStatement().getTimeStamp(); -// if (tpTime <= currentTime) continue; -// if (resultTbp == null) { -// resultTbp = tbp; -// resultTpTime = tp.getStatement().getTimeStamp(); -// } else if (tpTime < resultTpTime) { -// resultTbp = tbp; -// resultTpTime = tp.getStatement().getTimeStamp(); -// } -// } -// } -// return (resultTbp != null) ? resultTbp.dequeueTracePoint(true) : null; -// } -// -// public TracePoint getPreviousTracePoint(long currentTime) { -// TraceBreakPoint resultTbp = null; -// long resultTpTime = 0L; -// for (Map innerMap : traceBreakPoints.values()) { -// for (TraceBreakPoint tbp: innerMap.values()) { -// if (!tbp.isAvailable()) continue; -// TracePoint tp = tbp.previousTracePoint(); -// if (tp == null) continue; -// long tpTime = tp.getStatement().getTimeStamp(); -// if (tpTime >= currentTime) continue; -// if (resultTbp == null) { -// resultTbp = tbp; -// resultTpTime = tp.getStatement().getTimeStamp(); -// } else if (tpTime > resultTpTime) { -// resultTbp = tbp; -// resultTpTime = tp.getStatement().getTimeStamp(); -// } -// } -// } -// return (resultTbp != null) ? resultTbp.dequeueTracePoint(false) : null; -// } -// -// public void forwardAll(long currentTime) { -// for (Map innerMap : traceBreakPoints.values()) { -// for (TraceBreakPoint tbp : innerMap.values()) { -// tbp.forwardIndex(currentTime); -// } -// } -// } -// -// public void reverseAll(long currentTime) { -// for (Map innerMap : traceBreakPoints.values()) { -// for (TraceBreakPoint tbp : innerMap.values()) { -// tbp.reverseIndex(currentTime); -// } -// } -// } -// -// public void resetAll() { -// for (Map innerMap : traceBreakPoints.values()) { -// for (TraceBreakPoint tbp : innerMap.values()) { -// tbp.reset(); -// } -// } -// } } diff --git a/src/org/ntlab/traceDebugger/VariableView.java b/src/org/ntlab/traceDebugger/VariableView.java index 35a36a0..4a54e4b 100644 --- a/src/org/ntlab/traceDebugger/VariableView.java +++ b/src/org/ntlab/traceDebugger/VariableView.java @@ -14,12 +14,9 @@ import org.eclipse.jface.action.IToolBarManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; -import org.eclipse.jface.viewers.IBaseLabelProvider; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITableColorProvider; import org.eclipse.jface.viewers.ITreeViewerListener; -import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.TreeExpansionEvent; import org.eclipse.jface.viewers.TreeNode; @@ -202,19 +199,6 @@ expandParticularNodes(srcSideIdSet, dstSideIdSet, expandNodes, node); viewer.setExpandedElements(expandNodes.toArray(new Object[expandNodes.size()])); } - -// public void expandParticularNodes(Map> markerIdToObjectIdSet) { -// Set srcSideIdSet = new HashSet<>(markerIdToObjectIdSet.get(DeltaMarkerManager.DELTA_MARKER_ID)); -// Set dstSideIdSet = new HashSet<>(markerIdToObjectIdSet.get(DeltaMarkerManager.DELTA_MARKER_ID_2)); -// Set expandNodes = new HashSet<>(); -// Object obj = viewer.getTree().getTopItem().getData(); -// if (!(obj instanceof TreeNode)) return; -// TreeNode node = (TreeNode)obj; -// Object value = node.getValue(); -// if (!(value instanceof Variable)) return; -// expandParticularNodes(srcSideIdSet, dstSideIdSet, expandNodes, node); -// viewer.setExpandedElements(expandNodes.toArray(new Object[expandNodes.size()])); -// } private void expandParticularNodes(Set srcSideIdSet, Set dstSideIdSet, Set expandNodes, TreeNode node) { Object value = node.getValue(); diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java index d779533..04b0a59 100644 --- a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java +++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java @@ -51,9 +51,6 @@ DeltaRelatedAliasCollector aliasCollector = new DeltaRelatedAliasCollector(srcId, dstId); extractedStructure = deltaExtractor.extract(reference, before.duplicate(), aliasCollector); MethodExecution creationCallTree = extractedStructure.getCreationCallTree(); -// List srcSideRelatedAliases = aliasCollector.getSrcSideRelatedAliases(); -// List dstSideRelatedAliases = aliasCollector.getDstSideRelatedAliases(); -// List relatedAliases = aliasCollector.getRelatedAliases(); MethodExecution coordinator = extractedStructure.getCoordinator(); TracePoint bottomPoint = findTracePoint(reference, creationCallTree, before.getStatement().getTimeStamp()); deltaMarkerView.setBottomPoint(bottomPoint); @@ -73,7 +70,6 @@ // �f���^���o�̌��ʂ����Ƀ\�[�X�R�[�h�𔽓]�\������ DeltaMarkerManager mgr = deltaMarkerView.getDeltaMarkerManager(); -// mark(mgr, bottomPoint, relatedAliases, coordinator); mark(mgr, coordinator, aliasCollector, bottomPoint); deltaMarkerView.update(); } @@ -113,23 +109,6 @@ } mgr.markAndOpenJavaFile(bottomPoint, "Bottom", DeltaMarkerManager.BOTTOM_DELTA_MARKER); } - -// private void mark(DeltaMarkerManager mgr, TracePoint bottomPoint, List srcSideRelatedAliases, List dstSideRelatedAliases, MethodExecution coordinator) { -// mgr.markAndOpenJavaFile(bottomPoint, "Bottom", DeltaMarkerManager.BOTTOM_DELTA_MARKER); -// mgr.markAndOpenJavaFile(coordinator, -1 , "Coordinator", DeltaMarkerManager.COORDINATOR_DELTA_MARKER); -// int cnt = 1; -// for (Alias alias: srcSideRelatedAliases) { -// String message = String.format("SrcSide%03d", cnt); -// mgr.markAndOpenJavaFile(alias, message, DeltaMarkerManager.SRC_SIDE_DELTA_MARKER); -// cnt++; -// } -// cnt = 1; -// for (Alias alias : dstSideRelatedAliases) { -// String message = String.format("DstSide%03d", cnt); -// mgr.markAndOpenJavaFile(alias, message, DeltaMarkerManager.DST_SIDE_DELTA_MARKER); -// cnt++; -// } -// } private void reset() { for (DeltaMarkerView deltaMarkerView : deltaMarkerViews.values()) { diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzerLaunchConfiguration.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzerLaunchConfiguration.java new file mode 100644 index 0000000..a569f7c --- /dev/null +++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzerLaunchConfiguration.java @@ -0,0 +1,28 @@ +package org.ntlab.traceDebugger.analyzerProvider; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.core.runtime.FileLocator; +import org.ntlab.traceAnalysisPlatform.IAdditionalLaunchConfiguration; + +public class DeltaExtractionAnalyzerLaunchConfiguration implements IAdditionalLaunchConfiguration { + public static final String ANALYZER_PATH = "org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.class"; + public static final String ANALYZER_PACKAGE = "org.ntlab.traceDebugger.analyzerProvider"; + public static final String ANALYZER_CLASS = "DeltaExtractionAnalyzer"; + + @Override + public String[] getAdditionalClasspaths() { + try { + List classPathList = new ArrayList<>(); + String tracerClassPath = FileLocator.resolve(this.getClass().getClassLoader().getResource(ANALYZER_PATH)).getPath(); + String classPath = tracerClassPath.substring(0, tracerClassPath.length() - ANALYZER_PATH.length()); + classPathList.add(classPath); + return classPathList.toArray(new String[classPathList.size()]); + } catch (IOException e) { + e.printStackTrace(); + } + throw new IllegalStateException(); + } +} diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java index 3c1427a..22ca279 100644 --- a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java +++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java @@ -2,11 +2,8 @@ import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; - import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IMarker; import org.eclipse.core.runtime.CoreException; @@ -27,11 +24,7 @@ import org.eclipse.jface.text.IDocument; import org.eclipse.jface.text.IRegion; import org.eclipse.jface.viewers.TreeNode; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; import org.eclipse.ui.editors.text.FileDocumentProvider; -import org.eclipse.ui.ide.IDE; import org.eclipse.ui.part.FileEditorInput; import org.ntlab.traceAnalysisPlatform.tracer.trace.ArrayAccess; import org.ntlab.traceAnalysisPlatform.tracer.trace.ArrayCreate; @@ -87,37 +80,6 @@ return roots; } -// public TreeNode[] getMarkerTreeNodes() { -// TreeNode[] roots = new TreeNode[] { -// new TreeNode("Bottom"), -// new TreeNode("Coordinator"), -// new TreeNode("SrcSide"), -// new TreeNode("DstSide") -// }; -// List srcSideTreeNodeList = new ArrayList<>(); -// List dstSideTreeNodeList = new ArrayList<>(); -// for (Map.Entry> entry : markers.entrySet()) { -// String markerId = entry.getKey(); -// for (IMarker marker : entry.getValue()) { -// TreeNode node = new TreeNode(marker); -// if (markerId.equals(BOTTOM_DELTA_MARKER)) { -// roots[0] = node; -// } else if (markerId.equals(COORDINATOR_DELTA_MARKER)) { -// roots[1] = node; -// } else if (markerId.equals(SRC_SIDE_DELTA_MARKER)) { -// node.setParent(roots[2]); -// srcSideTreeNodeList.add(node); -// } else if (markerId.equals(DST_SIDE_DELTA_MARKER)) { -// node.setParent(roots[3]); -// dstSideTreeNodeList.add(node); -// } -// } -// } -// roots[2].setChildren(srcSideTreeNodeList.toArray(new TreeNode[srcSideTreeNodeList.size()])); -// roots[3].setChildren(dstSideTreeNodeList.toArray(new TreeNode[dstSideTreeNodeList.size()])); -// return roots; -// } - public IMarker getCoordinatorDeltaMarker() { List markers = markerIdToMarkers.get(COORDINATOR_DELTA_MARKER); if (markers == null || markers.isEmpty()) return null; diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaRelatedAliasCollector.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaRelatedAliasCollector.java index da1bea1..ebb8c1f 100644 --- a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaRelatedAliasCollector.java +++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaRelatedAliasCollector.java @@ -69,22 +69,6 @@ } } -// public List getSrcSideRelatedAliases() { -// return srcSideRelatedAliases; -// } -// -// public List getDstSideRelatedAliases() { -// return dstSideRelatedAliases; -// } -// -// public void addSrcSideRelatedAlias(Alias alias) { -// srcSideRelatedAliases.add(alias); -// } -// -// public void addDstSideRelatedAlias(Alias alias) { -// dstSideRelatedAliases.add(alias); -// } - public List getRelatedAliases() { return relatedAliases; } diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/ObjectFlowAnalyzerLaunchConfiguration.java b/src/org/ntlab/traceDebugger/analyzerProvider/ObjectFlowAnalyzerLaunchConfiguration.java deleted file mode 100644 index cc034f2..0000000 --- a/src/org/ntlab/traceDebugger/analyzerProvider/ObjectFlowAnalyzerLaunchConfiguration.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.ntlab.traceDebugger.analyzerProvider; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.core.runtime.FileLocator; -import org.ntlab.traceAnalysisPlatform.IAdditionalLaunchConfiguration; - -public class ObjectFlowAnalyzerLaunchConfiguration implements IAdditionalLaunchConfiguration { -// public static final String ANALYZER_PATH = "org/ntlab/traceDebugger/analyzerProvider/ObjectFlowAnalyzer.class"; - public static final String ANALYZER_PATH = "org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.class"; - public static final String ANALYZER_PACKAGE = "org.ntlab.traceDebugger.analyzerProvider"; -// public static final String ANALYZER_CLASS = "ObjectFlowAnalyzer"; - public static final String ANALYZER_CLASS = "DeltaExtractionAnalyzer"; - - @Override - public String[] getAdditionalClasspaths() { - try { - List classPathList = new ArrayList<>(); - String tracerClassPath = FileLocator.resolve(this.getClass().getClassLoader().getResource(ANALYZER_PATH)).getPath(); - String classPath = tracerClassPath.substring(0, tracerClassPath.length() - ANALYZER_PATH.length()); - classPathList.add(classPath); - return classPathList.toArray(new String[classPathList.size()]); - } catch (IOException e) { - e.printStackTrace(); - } - throw new IllegalStateException(); - } -} diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/ReferencePoint.java b/src/org/ntlab/traceDebugger/analyzerProvider/ReferencePoint.java deleted file mode 100644 index f416d50..0000000 --- a/src/org/ntlab/traceDebugger/analyzerProvider/ReferencePoint.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.ntlab.traceDebugger.analyzerProvider; - -import java.util.List; - -import org.ntlab.traceAnalysisPlatform.tracer.trace.FieldUpdate; -import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodExecution; -import org.ntlab.traceAnalysisPlatform.tracer.trace.MethodInvocation; -import org.ntlab.traceAnalysisPlatform.tracer.trace.Reference; -import org.ntlab.traceAnalysisPlatform.tracer.trace.Statement; -import org.ntlab.traceAnalysisPlatform.tracer.trace.TraceJSON; -import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; -import org.ntlab.traceDebugger.TraceBreakPoint; - -public class ReferencePoint { - private Reference reference; - private MethodExecution methodExecution; - private Statement statement; - - public ReferencePoint(Reference reference, MethodExecution methodExecution, long beforeTime) { - this.reference = reference; - this.methodExecution = methodExecution; - findFieldUpdate(beforeTime); - } - - public ReferencePoint(Reference reference, MethodExecution methodExecution, Statement statement) { - this.reference = reference; - this.methodExecution = methodExecution; - this.statement = statement; - } - - private void findFieldUpdate(long beforeTime) { - List statements = methodExecution.getStatements(); - for (int i = statements.size() - 1; i >= 0; i--) { - Statement statement = statements.get(i); - if (!(statement instanceof FieldUpdate)) continue; - if (statement.getTimeStamp() > beforeTime) continue; - FieldUpdate fu = (FieldUpdate)statement; - if (fu.getContainerObjId().equals(reference.getSrcObjectId()) - && fu.getValueObjId().equals(reference.getDstObjectId())) { - this.statement = fu; - return; - } - } - } - - public Reference getReference() { - return reference; - } - - public MethodExecution getMethodExecution() { - return methodExecution; - } - - public int getLineNo() { - return (statement != null) ? statement.getLineNo() : -1; - } - - public long getTime() { - if (statement instanceof MethodInvocation) { - return ((MethodInvocation)statement).getCalledMethodExecution().getEntryTime(); - } - return statement.getTimeStamp(); - } - - public TracePoint getTracePoint() { - int order = 0; - for (Statement statement : methodExecution.getStatements()) { - if (statement.equals(this.statement)) break; - order++; - } - return new TracePoint(methodExecution, order); - } - - public String getReferenceMessage() { - if (reference == null) return ""; - StringBuilder ref = new StringBuilder(); - ref.append(reference.getSrcClassName() + "(" + reference.getSrcObjectId() + ")"); - ref.append(" -> "); - ref.append(reference.getDstClassName() + "(" + reference.getDstObjectId() + ")"); - return ref.toString(); - } - - @Override - public String toString() { - int lineNo = getLineNo(); - String location = methodExecution.getSignature() + " line: " + lineNo; - String ref = getReferenceMessage(); - return String.format("%-50s %s", location, ref); - } -} \ No newline at end of file