diff --git a/org.ntlab.traceAnalyzer/bin/.gitignore b/org.ntlab.traceAnalyzer/bin/.gitignore deleted file mode 100644 index cf1db2e..0000000 --- a/org.ntlab.traceAnalyzer/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/org/ diff --git a/org.ntlab.traceAnalyzer/src/org/ntlab/trace/TraceJPDA.java b/org.ntlab.traceAnalyzer/src/org/ntlab/trace/TraceJPDA.java index 54fa06f..6b58fcd 100644 --- a/org.ntlab.traceAnalyzer/src/org/ntlab/trace/TraceJPDA.java +++ b/org.ntlab.traceAnalyzer/src/org/ntlab/trace/TraceJPDA.java @@ -48,7 +48,8 @@ String[] stack; String[] signature; String threadId; - int prevDepth = 0; + String threadName; + HashMap threadCallDepths = new HashMap<>(); int depth = 0; long timeStamp = 0L; ThreadInstanceJPDA thread = null; @@ -56,26 +57,27 @@ // �g���[�X�t�@�C���̉�� columns = line.split(":"); if (columns.length < 4) continue; - threadId = columns[0]; + threadName = columns[0]; + threadId = columns[1]; stack = columns[2].split(" "); columns2 = columns[3].split("\t"); if (columns2.length < 2) continue; - timeStamp = Integer.parseInt(columns[1]) * 3600 - + Integer.parseInt(stack[stack.length - 1]) * 60 + timeStamp = Integer.parseInt(stack[stack.length - 1]) * 60 + Integer.parseInt(columns2[0]); depth = stack.length - 1; signature = columns2[1].split(" -- "); - thread = threads.get(threadId); + thread = threads.get(threadName); if (thread == null) { - thread = new ThreadInstanceJPDA(threadId); - threads.put(threadId, thread); + thread = new ThreadInstanceJPDA(threadName); + threads.put(threadName, thread); + threadCallDepths.put(threadName, 0); } if (signature.length < 2) continue; - for (int i = 0; i < depth - prevDepth + 1; i++) { + for (int i = 0; i < threadCallDepths.get(threadName) - depth + 1; i++) { thread.returnMethod(); } thread.callMethod(signature[1] + "." + signature[0] + "()", timeStamp); - prevDepth = depth; + threadCallDepths.put(threadName, depth); } }