diff --git a/org.ntlab.reverseDebugger/META-INF/MANIFEST.MF b/org.ntlab.reverseDebugger/META-INF/MANIFEST.MF index d9af2e3..aab5e5a 100644 --- a/org.ntlab.reverseDebugger/META-INF/MANIFEST.MF +++ b/org.ntlab.reverseDebugger/META-INF/MANIFEST.MF @@ -10,6 +10,6 @@ org.eclipse.jdt.debug, org.eclipse.jdt.core;bundle-version="3.10.2", org.eclipse.jdt.ui;bundle-version="3.10.2", - org.ntlab.traceCollector + org.ntlab.traceAnalysisPlatform;bundle-version="1.0.0" Bundle-RequiredExecutionEnvironment: JavaSE-1.8 Bundle-ActivationPolicy: lazy diff --git a/org.ntlab.reverseDebugger/plugin.xml b/org.ntlab.reverseDebugger/plugin.xml index b10e8f3..f9ab0e4 100644 --- a/org.ntlab.reverseDebugger/plugin.xml +++ b/org.ntlab.reverseDebugger/plugin.xml @@ -52,7 +52,7 @@ + point="org.ntlab.traceAnalysisPlatform.additionalClasspaths"> diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/JavaEditorOperator.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/JavaEditorOperator.java index fdd0c6c..ad6857f 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/JavaEditorOperator.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/JavaEditorOperator.java @@ -29,7 +29,7 @@ import com.sun.jdi.VirtualMachine; public class JavaEditorOperator { - private static final String TRACE = "org.ntlab.traceCollector.tracer.trace"; + private static final String TRACE = "org.ntlab.traceAnalysisPlatform.tracer.trace"; public void openSrcFileOfAlias(JDIInstanceMethodCaller alias) { try { @@ -94,10 +94,12 @@ private String getLoaderPath(JDIInstanceMethodCaller meCaller, StringReference declaringClassName) throws InvalidTypeException, ClassNotLoadedException, InvocationException, IncompatibleThreadStateException { - ObjectReference classInfo = (ObjectReference)meCaller.callStaticMethod(TRACE, "TraceJSON", "getClassInfo", declaringClassName); + ObjectReference getInstance = (ObjectReference)meCaller.callStaticMethod(TRACE, "TraceJSON", "getInstance"); + JDIInstanceMethodCaller traceInstanceCaller = new JDIInstanceMethodCaller(meCaller.getVm(), meCaller.getThread(), getInstance); + ObjectReference classInfo = (ObjectReference)traceInstanceCaller.callInstanceMethod("getClassInfo", declaringClassName); if (classInfo == null) { declaringClassName = (StringReference)meCaller.callInstanceMethod("getThisClassName"); - classInfo = (ObjectReference)meCaller.callStaticMethod(TRACE, "TraceJSON", "getClassInfo", declaringClassName); + classInfo = (ObjectReference)traceInstanceCaller.callInstanceMethod("getClassInfo", declaringClassName); } String loaderPath = null; if (classInfo != null) { diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/SeedAliases.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/SeedAliases.java index 199b68e..5fecae0 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/SeedAliases.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/SeedAliases.java @@ -39,7 +39,7 @@ public class SeedAliases { private JDIInstanceMethodCaller debuggerStopMethodExecution = null; private List seedAliases = new ArrayList<>(); - private static final String TRACER = "org.ntlab.traceCollector.tracer.trace"; + private static final String TRACER = "org.ntlab.traceAnalysisPlatform.tracer.trace"; public SeedAliases() { initSeedAliases(); diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/Alias.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/Alias.java index a485a77..f919b24 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/Alias.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/Alias.java @@ -2,17 +2,17 @@ import java.util.ArrayList; -import org.ntlab.traceCollector.tracer.trace.ArrayAccess; -import org.ntlab.traceCollector.tracer.trace.ArrayCreate; -import org.ntlab.traceCollector.tracer.trace.ArrayUpdate; -import org.ntlab.traceCollector.tracer.trace.FieldAccess; -import org.ntlab.traceCollector.tracer.trace.FieldUpdate; -import org.ntlab.traceCollector.tracer.trace.MethodExecution; -import org.ntlab.traceCollector.tracer.trace.MethodInvocation; -import org.ntlab.traceCollector.tracer.trace.ObjectReference; -import org.ntlab.traceCollector.tracer.trace.Statement; -import org.ntlab.traceCollector.tracer.trace.Trace; -import org.ntlab.traceCollector.tracer.trace.TracePoint; +import org.ntlab.traceAnalysisPlatform.tracer.trace.ArrayAccess; +import org.ntlab.traceAnalysisPlatform.tracer.trace.ArrayCreate; +import org.ntlab.traceAnalysisPlatform.tracer.trace.ArrayUpdate; +import org.ntlab.traceAnalysisPlatform.tracer.trace.FieldAccess; +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.ObjectReference; +import org.ntlab.traceAnalysisPlatform.tracer.trace.Statement; +import org.ntlab.traceAnalysisPlatform.tracer.trace.Trace; +import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; /** * �I�u�W�F�N�g�̎Q�Ə��(�G�C���A�X)��\���N���X diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerAnalyzer.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerAnalyzer.java index 6fda8d3..7939fc9 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerAnalyzer.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerAnalyzer.java @@ -4,31 +4,22 @@ import java.util.Arrays; import java.util.List; - - -// import org.ntlab.traceCollector.tracer.trace.Alias; -import org.ntlab.traceCollector.tracer.trace.ArrayAccess; -import org.ntlab.traceCollector.tracer.trace.ArrayCreate; -import org.ntlab.traceCollector.tracer.trace.ArrayUpdate; -import org.ntlab.traceCollector.tracer.trace.FieldAccess; -import org.ntlab.traceCollector.tracer.trace.FieldUpdate; -import org.ntlab.traceCollector.tracer.trace.MethodExecution; -import org.ntlab.traceCollector.tracer.trace.MethodInvocation; -import org.ntlab.traceCollector.tracer.trace.ObjectReference; -import org.ntlab.traceCollector.tracer.trace.Statement; -import org.ntlab.traceCollector.tracer.trace.TraceJSON; -import org.ntlab.traceCollector.tracer.trace.TracePoint; +import org.ntlab.traceAnalysisPlatform.tracer.trace.ArrayAccess; +import org.ntlab.traceAnalysisPlatform.tracer.trace.ArrayCreate; +import org.ntlab.traceAnalysisPlatform.tracer.trace.ArrayUpdate; +import org.ntlab.traceAnalysisPlatform.tracer.trace.FieldAccess; +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.ObjectReference; +import org.ntlab.traceAnalysisPlatform.tracer.trace.Reference; +import org.ntlab.traceAnalysisPlatform.tracer.trace.Statement; +import org.ntlab.traceAnalysisPlatform.tracer.trace.Trace; +import org.ntlab.traceAnalysisPlatform.tracer.trace.TracePoint; public class ReverseDebuggerAnalyzer { - public void test2() { - System.out.println("OnlineTraceAnalyzer#test2()���Ă΂ꂽ��!"); - TraceJSON.test(); - System.out.println("OnlineTraceAnalyzer#test2()���甲�����!"); - } - public static ArrayList findAllStartAlias(MethodExecution me) { - System.out.println("OnlineTraceAnalyzer#findAllStartAlias(MethodExecution)���Ă΂ꂽ��!"); ArrayList startAliasList = new ArrayList<>(); List statements = me.getStatements(); String[] primitives = {"byte", "short", "int", "long", "float", "double", "char", "boolean"}; @@ -97,34 +88,31 @@ } } } - for (Alias startAlias : startAliasList) { - System.out.println(startAlias); - } return startAliasList; } private static TracePoint getRecentlyFieldUpdate(TracePoint tp) { - System.out.println("OnlineTraceAnalyzer#getRecentlyFieldUpdate(TracePoint)���Ă΂ꂽ��!"); Statement statement = tp.getStatement(); if (statement instanceof FieldAccess) { FieldAccess fa = (FieldAccess)statement; - return TraceJSON.getFieldUpdateTracePoint(fa.getContainerObjId(), fa.getFieldName(), tp); + return Trace.getInstance().getFieldUpdateTracePoint(fa.getReference(), tp); } return null; } private static TracePoint getRecentlyArrayUpdate(TracePoint tp) { - System.out.println("OnlineTraceAnalyzer#getRecentlyArrayUpdate(TracePoint)���Ă΂ꂽ��!"); Statement statement = tp.getStatement(); if (statement instanceof ArrayAccess) { ArrayAccess aa = (ArrayAccess)statement; - return TraceJSON.getArrayUpdateTracePoint(aa.getArrayObjectId(), aa.getIndex(), tp); + // aa.getReference()���Ȃ��̂ʼn��ɂ�����ۂ�Reference������ēn�� + return Trace.getInstance().getArraySetTracePoint( + new Reference(aa.getArrayObjectId(), aa.getValueObjectId(), aa.getArrayClassName(), aa.getValueClassName()), + tp); } return null; } public static ArrayList> getObjectFlow(Alias startAlias) { - System.out.println("OnlineTraceAnalyzer#getObjectFlow(Alias)���Ă΂ꂽ��!"); ArrayList> aliasLists = new ArrayList<>(); ArrayList aliasList = new ArrayList<>(); aliasLists.add(aliasList); @@ -141,17 +129,11 @@ // resultLists.remove(resultList); // �����̃G�C���A�X���z�񐶐���R���X�g���N�^�Ăяo���ł͂Ȃ����X�g���폜���� // } // } - for (List resultList : resultLists) { - for (Alias resultAlias : resultList) { - System.out.println(resultAlias); - } - } return resultLists; } private static ArrayList> getObjectFlow(ArrayList> aliasLists, String objId, TracePoint tp, int side) { - System.out.println("OnlineTraceAnalyzer#getObjectFlow(ArrayList, String, TracePoint, int)���Ă΂ꂽ��!"); ArrayList aliasList = aliasLists.get(aliasLists.size() - 1); // ����getObjectFlow���\�b�h���s���Ō��‚������G�C���A�X�����Ă������X�g do { Statement statement = tp.getStatement(); @@ -221,7 +203,6 @@ } public static int countMethodExecutionInTraceCollector(List methodExecutions, String targetSignature, int count, String indent) { - System.out.println("OnlineTraceAnalyzer#countMethodExecutionInTraceCollector(List, String, int, String)���Ă΂ꂽ��!"); if (methodExecutions == null || methodExecutions.isEmpty()) { return count; } diff --git a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerLaunchConfiguration.java b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerLaunchConfiguration.java index 6a519da..fa73e62 100644 --- a/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerLaunchConfiguration.java +++ b/org.ntlab.reverseDebugger/src/org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerLaunchConfiguration.java @@ -5,7 +5,7 @@ import java.util.List; import org.eclipse.core.runtime.FileLocator; -import org.ntlab.traceCollector.IAdditionalLaunchConfiguration; +import org.ntlab.traceAnalysisPlatform.IAdditionalLaunchConfiguration; public class ReverseDebuggerLaunchConfiguration implements IAdditionalLaunchConfiguration { public static final String ANALYZER_PATH = "org/ntlab/reverseDebugger/analyzerProvider/ReverseDebuggerAnalyzer.class"; @@ -13,11 +13,11 @@ public static final String ANALYZER_CLASS = "ReverseDebuggerAnalyzer"; @Override - public String[] getAdditionalClasspath() { + public String[] getAdditionalClasspaths() { try { List classPathList = new ArrayList<>(); String tracerClassPath = FileLocator.resolve(this.getClass().getClassLoader().getResource(ANALYZER_PATH)).getPath(); - String classPath = tracerClassPath.substring(1, tracerClassPath.length() - ANALYZER_PATH.length()); + String classPath = tracerClassPath.substring(0, tracerClassPath.length() - ANALYZER_PATH.length()); classPathList.add(classPath); return classPathList.toArray(new String[classPathList.size()]); } catch (IOException e) {