我尝试使用Samurai来分析我的线程转储。
我从Java VisualVM中保存了一个线程转储,它提供了一个.tdump文件。 然后我用
开始了Samuraijava -jar samurai.jar
我将我的线程转储文件拖入Samurai并在控制台中出现以下错误:
java.lang.ArrayIndexOutOfBoundsException: 0
at samurai.swing.ThreadDumpPanel$7.run(ThreadDumpPanel.java:634)
at samurai.swing.LogRenderer.invokeLater(LogRenderer.java:78)
at samurai.swing.ThreadDumpPanel.updateHtml(ThreadDumpPanel.java:629)
at samurai.swing.ThreadDumpPanel.access$300(ThreadDumpPanel.java:61)
at samurai.swing.ThreadDumpPanel$8.onFullThreadDump(ThreadDumpPanel.java:665)
at samurai.core.ThreadDumpExtractor.fullThreadDumpEnded(ThreadDumpExtractor.java:175)
at samurai.core.ThreadDumpExtractor.finish(ThreadDumpExtractor.java:151)
at samurai.swing.ThreadDumpPanel.logEnded(ThreadDumpPanel.java:688)
at samurai.tail.MultipleLogWatcher.logEnded(MultipleLogWatcher.java:96)
at samurai.tail.SingleLogWatcher.logEnded(SingleLogWatcher.java:212)
at samurai.tail.SingleLogWatcher.checkUpdate(SingleLogWatcher.java:123)
at samurai.tail.Tailer.run(Tailer.java:56)
Saving configuration.[/Users/test/.samurai.properties]
如果没有错误让Samurai正常运行我该怎么做?
答案 0 :(得分:0)
我无法解决Samurai问题,您可以尝试将TDA plugin用于VisualVM。 TDA应该能够提供与Samurai相同的信息。
答案 1 :(得分:0)
诸如fastThread.io之类的工具可以将所有线程的堆栈跟踪分组,并生成一个调用堆栈树。您可以在该树上下钻并向上浏览以查看关键代码路径。以下是“ fastThread.io”生成的示例调用堆栈树。欢迎您到这里查看实时报告中的调用堆栈树。