diff --git a/src/org/ntlab/traceDebugger/DebuggingController.java b/src/org/ntlab/traceDebugger/DebuggingController.java index 755d204..0d7790b 100644 --- a/src/org/ntlab/traceDebugger/DebuggingController.java +++ b/src/org/ntlab/traceDebugger/DebuggingController.java @@ -285,7 +285,7 @@ refresh(null, debuggingTp, false); return true; } - + public boolean stepOverAction() { if (!isRunning) return false; if (debuggingTp == null) return false; @@ -298,28 +298,13 @@ int currentLineNo = debuggingTp.getStatement().getLineNo(); boolean isReturned = false; - // �X�e�b�v�I�[�o�[��p���ē��B�_�����‚��Ă��� - TracePoint startTp = debuggingTp.duplicate(); while (!(isReturned = !(debuggingTp.stepOver()))) { if (currentLineNo != debuggingTp.getStatement().getLineNo()) break; previousTp = debuggingTp.duplicate(); } - TracePoint goalTp = debuggingTp.duplicate(); - if (!isReturned) { - // �X�e�b�v�t����p���č��x�͌Ăяo����ɂ�����Ȃ���\�ߌ��‚��Ă��������B�_�܂Ői�܂��� (�ϐ������X�V�̂��ߓr���̃A�b�v�f�[�g��S�ďE��) - debuggingTp = startTp; - do { - Statement statement = debuggingTp.getStatement(); - if (statement.equals(goalTp.getStatement())) break; - if (statement instanceof FieldUpdate || statement instanceof ArrayUpdate) { - Variables.getInstance().addDifferentialUpdatePoint(debuggingTp); - } - } while (debuggingTp.stepFull()); - } else { - debuggingTp = goalTp; + if (isReturned) { while (!debuggingTp.stepOver()); // �Ăяo�����ł̎��̃X�e�[�g�����g�܂Ői�߂� } - if (debugExecutionIsTerminated(debuggingTp)) return false; refresh(previousTp, debuggingTp, isReturned, true); return true; @@ -345,7 +330,7 @@ refresh(previousTp, debuggingTp, true); return true; } - + public boolean stepNextAction() { if (!isRunning) return false; if (debuggingTp == null) return false; @@ -355,27 +340,13 @@ } TracePoint previousTp = debuggingTp; debuggingTp = debuggingTp.duplicate(); - TracePoint startTp = debuggingTp.duplicate(); boolean isReturned = !(debuggingTp.stepNext()); - TracePoint goalTp = debuggingTp.duplicate(); - if (!isReturned) { - // �X�e�b�v�t����p���č��x�͌Ăяo����ɂ�����Ȃ���\�ߌ��‚��Ă��������B�_�܂Ői�܂��� (�ϐ������X�V�̂��ߓr���̃A�b�v�f�[�g��S�ďE��) - debuggingTp = startTp; - do { - Statement statement = debuggingTp.getStatement(); - if (statement.equals(goalTp.getStatement())) break; - if (statement instanceof FieldUpdate || statement instanceof ArrayUpdate) { - Variables.getInstance().addDifferentialUpdatePoint(debuggingTp); - } - } while (debuggingTp.stepFull()); - } else { - debuggingTp = startTp; + if (isReturned) { while (!debuggingTp.stepOver()); // �Ăяo�����ł̎��̃X�e�[�g�����g�܂Ői�߂� } - if (debugExecutionIsTerminated(debuggingTp)) return false; refresh(previousTp, debuggingTp, isReturned, true); - return true; + return true; } public boolean resumeAction() {