Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用kill-3捕获线程转储_Java_Jvm_Kill_Thread Dump - Fatal编程技术网

Java 使用kill-3捕获线程转储

Java 使用kill-3捕获线程转储,java,jvm,kill,thread-dump,Java,Jvm,Kill,Thread Dump,尝试使用kill-3将线程转储捕获到文件 尝试 -XX:+UnlockDiagnosticVMOptions-XX:+LogVMOutput-XX:LogFile=dump.log 这是可行的,但寻找类似 jstack 17264 > /tmp/threaddump.txt 任何使用kill-3捕获线程转储并使用命令输出到文件的简单方法,您已经知道如何使用kill-3获取线程转储,以及如何使用jstack获取线程转储。你还错过了什么?为什么?@apangin我想使用kill-3命令将输出

尝试使用kill-3将线程转储捕获到文件

尝试

-XX:+UnlockDiagnosticVMOptions-XX:+LogVMOutput-XX:LogFile=dump.log

这是可行的,但寻找类似

jstack 17264 > /tmp/threaddump.txt

任何使用kill-3捕获线程转储并使用命令输出到文件的简单方法,您已经知道如何使用
kill-3
获取线程转储,以及如何使用
jstack
获取线程转储。你还错过了什么?为什么?@apangin我想使用kill-3命令将输出重定向到一个文件,就像我给出的jstack示例一样。那么为什么你不能使用jstack呢?JVM的SIGINT处理程序将线程转储到JVM的标准输出,并且除了您已经提到的标志外,它没有重定向输出的选项。
jstack
(不带-F)和
kill-3
使用相同的机制在引擎盖下获得线程转储。它们都依赖于JVM的合作;在这两种情况下,线程都在全局VM安全点转储。如果JVM挂起,
kill-3
也不会有帮助。没有灵丹妙药。任何一个JVM都可以工作,因此它会自己生成一个不错的线程转储(响应jstack或kill-3)。或者它不起作用,获取信息的唯一方法是通过一个外部进程来读取外部内存并重构JVM结构(这就是jstack-F所做的)。