diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/debuggingControl/DebuggingControlAction.java b/org.ntlab.reverseDebugger/src/org/ntlab/debuggingControl/DebuggingControlAction.java index f92b30f..00d9271 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/debuggingControl/DebuggingControlAction.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/debuggingControl/DebuggingControlAction.java @@ -162,55 +162,49 @@ // threadInstance�̃��\�b�h�Ăяo���؂̑S���\�b�h�ɂ‚��Ă̊e��f�[�^���擾���ĕ\������ // printCallTreeDataFromRoot(vm, thread, threadInstance); + // �I�����C����͒���traceCollector��TraceJSON#getObjectFlow()���Ăяo�����̃R�[�h printObjectFlow(vm, thread, threadInstance); } + /** + * �I�����C����͒���traceCollector��TraceJSON#getObjectFlow()���Ăяo�����̃R�[�h + * @param vm + * @param thread + * @param threadInstance + */ private void printObjectFlow(VirtualMachine vm, ThreadReference thread, Value threadInstance) throws InvalidTypeException, ClassNotLoadedException, InvocationException, IncompatibleThreadStateException { // ThreadInstance������curMethodExecution���擾 String methodName = "getCurrentMethodExecution"; Value methodExecution = callInstanceMethod(vm, thread, methodName, (ObjectReference)threadInstance); -// System.out.println(methodExecution); + // curMethodExecution�̍ŏI�X�e�[�g�����g���擾 methodName = "getStatements"; Value statements = callInstanceMethod(vm, thread, methodName, (ObjectReference)methodExecution); -// System.out.println(statements); methodName = "size"; int statementsSize = ((IntegerValue)callInstanceMethod(vm, thread, methodName, (ObjectReference)statements)).value(); -// System.out.println(statementsSize); Value lastIndex = vm.mirrorOf(statementsSize - 1); methodName = "get"; Value lastStatement = callInstanceMethod(vm, thread, methodName, (ObjectReference)statements, lastIndex); -// System.out.println(lastStatement); - - methodName = "getCalledMethodExecution"; - Value calledMethodExecution = callInstanceMethod(vm, thread, methodName, (ObjectReference)lastStatement); -// System.out.println(calledMethodExecution); - methodName = "getReturnValue"; - Value returnValue = callInstanceMethod(vm, thread, methodName, (ObjectReference)calledMethodExecution); -// System.out.println(returnValue); - methodName = "getId"; - Value valueObjId = callInstanceMethod(vm, thread, methodName, (ObjectReference)returnValue); -// System.out.println(valueObjId); - - -// methodName = "getValueObjId"; -// Value valueObjId = callInstanceMethod(vm, thread, methodName, (ObjectReference)lastStatement); -// System.out.println(valueObjId); - methodName = "getTracePoint"; - Value tp = callInstanceMethod(vm, thread, methodName, (ObjectReference)methodExecution, lastIndex); -// System.out.println(tp); - Value occurrenceEXP = vm.mirrorOf(1); - methodName = "getAlias"; + + // �G�C���A�X�����ɗp����objId��tp���擾 String packageName = "org.ntlab.traceCollector.tracer.trace"; String className = "TraceJSON"; + methodName = "findValueObjId"; + Value occurrenceEXP = vm.mirrorOf(1); // �����͊m�F�������p�^�[���ɉ����Ď蓮�ŕς�����𓾂Ȃ� + Value valueObjId = callStaticMethod(vm, thread, packageName, className, methodName, lastStatement, occurrenceEXP); + methodName = "getTracePoint"; + Value tp = callInstanceMethod(vm, thread, methodName, (ObjectReference)methodExecution, lastIndex); + + // �X�^�[�g�ƂȂ�G�C���A�X�𐶐� + methodName = "getAlias"; Value alias = callStaticMethod(vm, thread, packageName, className, methodName, valueObjId, tp, occurrenceEXP); -// System.out.println(alias); methodName = "toString"; Value str = callInstanceMethod(vm, thread, methodName, (ObjectReference)alias); printValue("", "", str, true); System.out.println(); + // getObjectFlow�����s methodName = "getObjectFlow"; Value result = callStaticMethod(vm, thread, packageName, className, methodName, alias); System.out.println(); @@ -704,7 +698,7 @@ * �p�b�P�[�W���ƃN���X���ƃ��\�b�h���ƈ������w�肵�Ă��̃N���X���\�b�h���Ăяo�� * @param vm * @param thread - * @param packageName �Ăт����������\�b�h������N���X�̃p�b�P�[�W�� (�N���X���ƌq���Ŋ��S���薼�ɂ��邽�߁A������ . ���‚���) + * @param packageName �Ăт����������\�b�h������N���X�̃p�b�P�[�W�� * @param className �Ăяo���������\�b�h������N���X�� * @param methodName �Ăяo���������\�b�h�� (static) * @param args �Ăяo���������\�b�h�ɓn������(Value �̃N���X�^�ʼn•ϒ�)