|
|
1
72
|
|
|
2
204
|
|
|
3
35
线程.currentThread()。 getStackTrace()
并从需要知道其调用者是谁的方法中调用该方法。但是,有一句警告:列表中调用帧的索引可能因JVM而异!这完全取决于在生成跟踪之前getStackTrace中有多少层调用。一个更稳健的解决方案是获取跟踪,并对其进行迭代,寻找getCallingMethodName的帧,然后再向前走两步,找到真正的调用者。 |
|
|
4
28
你可以得到这样的堆栈跟踪:
如果你想访问帧,你可以使用t.getStackTrace()来获取堆栈帧数组。
|
|
|
5
12
请注意,Thread.dumpStack()实际上抛出了一个异常:
|
|
|
6
6
Java 9引入了
以下是Javadoc中的一些片段:
|
|
|
7
4
JDK6引入了另一个选项,jstack命令,它将显示计算机上任何正在运行的JDK6进程的堆栈:
这些选项对于在生产环境中运行且不易修改的应用程序非常有用。它们对于诊断运行时死锁或性能问题特别有用。 http://java.sun.com/developer/technicalArticles/Programming/Stacktrace/ http://java.sun.com/javase/6/docs/technotes/tools/share/jstack.html |
|
|
8
2
如果您需要捕获输出
|
|
|
9
0
这
answer by Rob Di Marco
如果你想捕捉到
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 9 月前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 9 月前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 9 月前 |
|
|
rudraraj · java中未声明最终变量 9 月前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 9 月前 |