java - 打印当前在 Java 中运行的所有线程的所有堆栈跟踪
问题描述
我想将当前在 Java 进程中运行的所有线程的所有堆栈跟踪打印到标准输出,以调试我的服务器的死锁。
解决方案
这是代码,您可以复制并粘贴函数体并使用它而无需任何导入。
class HelloWorld {
public static void main(String[] args) {
java.util.Collection<java.lang.StackTraceElement[]> a1 = java.lang.Thread.getAllStackTraces().values();
for (java.lang.StackTraceElement[] a2 : a1){
System.out.println("==========");
for (java.lang.StackTraceElement a3 : a2){
System.out.println(a3.toString());
}
}
}
}
上面的代码已经过测试:
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
推荐阅读
- c# - What does the question mark sign '?' mean after a C# type?
- emacs - where to customize lsp-project-blacklist in spacemacs lsp layer
- python - 我正在尝试为这个问题实现一个加法表。但是,我不太确定如何以及返回什么值返回函数
- javascript - React Native TextInput not scroll in ScrollView
- asp.net - How was asp.Net mvc tightly coupled with IIS?
- java - How send emails from shared email (or delegation email) with JakartaMail
- android - Android TextInputEditText settext missing or conflicting dependencies [Solved]
- java - Hbase bulk load data to multiple family columns
- c++ - c++ Std::accumulate for unordered map
- python - Quadratic graph assist Python on Calculator