diff --git a/src/org/ntlab/traceDebugger/CallStackModel.java b/src/org/ntlab/traceDebugger/CallStackModel.java index 147e272..5fbc854 100644 --- a/src/org/ntlab/traceDebugger/CallStackModel.java +++ b/src/org/ntlab/traceDebugger/CallStackModel.java @@ -38,7 +38,13 @@ String declaringType = Trace.getDeclaringType(signature, isConstructor); declaringType = declaringType.substring(declaringType.lastIndexOf(".") + 1); String methodName = Trace.getMethodName(signature); - String args = "(" + signature.split("\\(")[1]; + String args = "("; + String delimiter = ""; + String[] argArray = signature.split("\\(")[1].split(","); + for (String arg : argArray) { + args += (delimiter + arg.substring(arg.lastIndexOf(".") + 1)); + delimiter = ", "; + } StringBuilder sb = new StringBuilder(); sb.append(objectType); diff --git a/src/org/ntlab/traceDebugger/CallTreeModel.java b/src/org/ntlab/traceDebugger/CallTreeModel.java index ee2a1ff..21278d3 100644 --- a/src/org/ntlab/traceDebugger/CallTreeModel.java +++ b/src/org/ntlab/traceDebugger/CallTreeModel.java @@ -33,7 +33,13 @@ String declaringType = Trace.getDeclaringType(signature, isConstructor); declaringType = declaringType.substring(declaringType.lastIndexOf(".") + 1); String methodName = Trace.getMethodName(signature); - String args = "(" + signature.split("\\(")[1]; + String args = "("; + String delimiter = ""; + String[] argArray = signature.split("\\(")[1].split(","); + for (String arg : argArray) { + args += (delimiter + arg.substring(arg.lastIndexOf(".") + 1)); + delimiter = ", "; + } StringBuilder sb = new StringBuilder(); sb.append(objectType); diff --git a/src/org/ntlab/traceDebugger/CallTreeModels.java b/src/org/ntlab/traceDebugger/CallTreeModels.java index e9ba525..248a8f9 100644 --- a/src/org/ntlab/traceDebugger/CallTreeModels.java +++ b/src/org/ntlab/traceDebugger/CallTreeModels.java @@ -66,21 +66,25 @@ MethodExecution coordinatorME = deltaMarkerManager.getMethodExecution(coordinatorMarker); CallTreeModel coordinator = new CallTreeModel(coordinatorME); callTreeModelsMemo.put(coordinatorME, coordinator); - for (IMarker srcSideMarker : srcSideMarkers) { - MethodExecution me = deltaMarkerManager.getMethodExecution(srcSideMarker); - CallTreeModel callTreeModel = new CallTreeModel(me); - if (!(callTreeModelsMemo.containsKey(me))) { - callTreeModelsMemo.put(me, callTreeModel); - create(callTreeModel, coordinatorME); + if (srcSideMarkers != null) { + for (IMarker srcSideMarker : srcSideMarkers) { + MethodExecution me = deltaMarkerManager.getMethodExecution(srcSideMarker); + CallTreeModel callTreeModel = new CallTreeModel(me); + if (!(callTreeModelsMemo.containsKey(me))) { + callTreeModelsMemo.put(me, callTreeModel); + create(callTreeModel, coordinatorME); + } } } - for (IMarker dstSideMarker : dstSideMarkers) { - MethodExecution me = deltaMarkerManager.getMethodExecution(dstSideMarker); - CallTreeModel callTreeModel = new CallTreeModel(me); - if (!(callTreeModelsMemo.containsKey(me))) { - callTreeModelsMemo.put(me, callTreeModel); - create(callTreeModel, coordinatorME); - } + if (dstSideMarkers != null) { + for (IMarker dstSideMarker : dstSideMarkers) { + MethodExecution me = deltaMarkerManager.getMethodExecution(dstSideMarker); + CallTreeModel callTreeModel = new CallTreeModel(me); + if (!(callTreeModelsMemo.containsKey(me))) { + callTreeModelsMemo.put(me, callTreeModel); + create(callTreeModel, coordinatorME); + } + } } MethodExecution bottomME = deltaMarkerManager.getMethodExecution(bottomMarker); CallTreeModel bottom = new CallTreeModel(bottomME); diff --git a/src/org/ntlab/traceDebugger/VariableView.java b/src/org/ntlab/traceDebugger/VariableView.java index ab4bda0..d398d22 100644 --- a/src/org/ntlab/traceDebugger/VariableView.java +++ b/src/org/ntlab/traceDebugger/VariableView.java @@ -222,8 +222,12 @@ List srcSideDeltaMarkers = markers.get(DeltaMarkerManager.SRC_SIDE_DELTA_MARKER); List dstSideDeltaMarkers = markers.get(DeltaMarkerManager.DST_SIDE_DELTA_MARKER); List coordinatorMarker = markers.get(DeltaMarkerManager.COORDINATOR_DELTA_MARKER); - markVariables(DeltaMarkerManager.SRC_SIDE_DELTA_MARKER, srcSideDeltaMarkers); - markVariables(DeltaMarkerManager.DST_SIDE_DELTA_MARKER, dstSideDeltaMarkers); + if (srcSideDeltaMarkers != null) { + markVariables(DeltaMarkerManager.SRC_SIDE_DELTA_MARKER, srcSideDeltaMarkers); + } + if (dstSideDeltaMarkers != null) { + markVariables(DeltaMarkerManager.DST_SIDE_DELTA_MARKER, dstSideDeltaMarkers); + } markVariables(DeltaMarkerManager.COORDINATOR_DELTA_MARKER, coordinatorMarker); viewer.refresh(); expandAllMarkedNodes(); diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java index 13e9877..8a951d2 100644 --- a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java +++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaExtractionAnalyzer.java @@ -59,13 +59,23 @@ MethodExecution me = bottomPoint.getMethodExecution(); MethodExecution childMe = null; while (me != null) { - childMe = me; - me = me.getParent(); if (coordinator.equals(me)) { - TracePoint coordinatorPoint = childMe.getCallerTracePoint(); + TracePoint coordinatorPoint; + if (childMe != null) { + coordinatorPoint = childMe.getCallerTracePoint(); + } else { + coordinatorPoint = bottomPoint; + } deltaMarkerView.setCoordinatorPoint(coordinatorPoint); break; } + childMe = me; + me = me.getParent(); +// if (coordinator.equals(me)) { +// TracePoint coordinatorPoint = childMe.getCallerTracePoint(); +// deltaMarkerView.setCoordinatorPoint(coordinatorPoint); +// break; +// } } // �f���^���o�̌��ʂ����Ƀ\�[�X�R�[�h�𔽓]�\������ diff --git a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java index 9a499e9..7b7d6b5 100644 --- a/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java +++ b/src/org/ntlab/traceDebugger/analyzerProvider/DeltaMarkerManager.java @@ -415,10 +415,17 @@ name2 = name2.substring(0, name2.indexOf("(") + 1); name2 = name2.substring(name2.lastIndexOf(".") + 1); if (!(name1.equals(name2))) return true; - String receiverName = node.getExpression().toString(); +// String receiverName = node.getExpression().toString(); + Expression expression = node.getExpression(); + String receiverName = ""; + if (expression != null) { + receiverName = expression.toString(); + } int start = node.getStartPosition(); if (source.startsWith("this.", start)) { start += ("this." + receiverName + ".").length(); + } else if (source.startsWith("super.", start)) { + start += ("super." + receiverName + ".").length(); } else { start += (receiverName + ".").length(); }