java jstack

作者:原创时间:2022-04-02
文档

java jstack是什么,让我们一起了解一下?

jstack是java虚拟机自带的一种堆栈跟踪工具,用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,主要分为两个功能:针对活着的进程做本地的或远程的线程dump,以及针对core文件做线程dump。

jstack的概念是什么?

1、jstack命令的语法格式:jstack

2、Dump文件:Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专门的工具软件打开,比如使用Windbg。 

在Windbg中可以通过.dump命令保存进程的dump文件。比如下面的命令把当前进程的镜像保存为c:\testdump.dmp文件:.dump /ma c:\testdump.dmp。 

其中、ma参数表示dump文件应该包含进程的完整信息,包括整个用户态的内存,这样dump文件尺寸会比较大,信息非常全面。如果不是用、ma参数,保存下来的dump文件只包含了部分重要资料,比如寄存器和线程栈空间,文件尺寸会比较小,无法分析所有的数据。 

3、java线程Dump:线程dump是非常有用的诊断java应用问题的工具,每一个java虚拟机都有及时生成显示所有线程在某一点状态的线程dump的能力。虽然各个java虚拟机线程dump打印输出格式上略微有一些不同,但是线程dump出来的信息包含线程基本信息;线程的运行状态、标识和调用的堆栈;调用的堆栈包含完整的类名,所执行的方法,如果可能的话还有源代码的行数。

jstack是如何使用的?

实战案例如下:

package concurrency;
import java.io.IOException;
import java.io.InputStream;
public class Test {
    public static void main(String[] args) throws InterruptedException, IOException {
        InputStream is = System.in;
        int i = is.read();
        System.out.println("exit。");
    }
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java jstat java jta java jtable java jtextfield java jvm java jxl java kafka java keystore java kmeans java kudu java lamada java leveldb java linklist java linq java list.add java list.contains java locale java localtime java logging java logstash java jsonp java jsonfield java jquery java jps java joptionpane java jndi java jmh java jmeter java jit java jetty java jep 计算机管理怎么打开 excel怎么排序 两个excel如何独立显示 微信分组怎么删除 朋友圈怎么转发 qq怎么清理缓存和垃圾清理 苹果手机怎么恢复出厂设置 怎么导出微信聊天记录 微信群怎么找