美文网首页
jvm 调试

jvm 调试

作者: dongweima | 来源:发表于2017-10-02 20:41 被阅读0次

javac

javap

http://www.hollischuang.com/archives/1107

javap可以用于反编译和查看编译器编译后的字节码。平时一般用javap -c比较多,该命令用于列出每个方法所执行的JVM指令,并显示每个方法的字节码的实际作用。可以通过字节码和源代码的对比,深入分析java的编译原理,了解和解决各种Java原理级别的问题。

-help 帮助
-l 输出行和变量的表
-public 只输出public方法和域
-protected 只输出public和protected类和成员
-package 只输出包,public和protected类和成员,这是默认的
-p -private 输出所有类和成员
-s 输出内部类型签名
-c 输出分解后的代码,例如,类中每一个方法内,包含java字节码的指令,
-verbose 输出栈大小,方法参数的个数
-constants 输出静态final常量

Jps 显示当前系统的java进程情况,及其id号

jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号。 jps相当于Solaris进程工具ps。不象”pgrep java”或”ps -ef grep java”,jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行体的那种(例如,定制的启动 器)。另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。

jstack 用于生成java虚拟机当前时刻的线程快照 http://www.hollischuang.com/archives/110

hollis@hos:~$ jstack -help
Usage:
    jstack [-l] <pid>
        (to connect to running process)
    jstack -F [-m] [-l] <pid>
        (to connect to a hung process)
    jstack [-m] [-l] <executable> <core>
        (to connect to a core file)
    jstack [-m] [-l] [server_id@]<remote server IP or hostname>
        (to connect to a remote debug server)

Options:
    -F  to force a thread dump. Use when jstack <pid> does not respond (process is hung)
    -m  to print both java and native frames (mixed mode)
    -l  long listing. Prints additional information about locks
    -h or -help to print this help message
-F当’jstack [-l] pid’没有相应的时候强制打印栈信息 
-l长列表. 打印关于锁的附加信息,例如属于java.util.concurrent的ownable synchronizers列表. -m打印java和native c/c++框架的所有栈信息. 
-h | -help打印帮助信息 pid 需要被打印配置信息的java进程id,可以用jps查询.

jstack是java虚拟机自带的一种堆栈跟踪工具。
jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。 线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做什么事情,或者等待什么资源。 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。

So,jstack命令主要用来查看Java线程的调用堆栈的,可以用来分析线程问题(如死锁)。

相关文章

  • jvm 调试

    javac javap http://www.hollischuang.com/archives/1107 jav...

  • JVM参数

    JVM参数 功能开关: 性能参数: 调试参数:

  • jvm 垃圾回收详解

    JVM调试1、tomcat 设置JVM信息以及日志打印路径(特意设置较小 导致频繁GC)set "JAVA_OPT...

  • Java虚拟机(JVM源码):搭建OpenJDK(10)源码调试

    Java虚拟机(JVM源码):搭建OpenJDK(10)源码调试环境

  • JVM 调试架构

    JPDA简介 所有的程序员都会遇到 bug,对于运行态的错误,我们往往需要一些方法来观察和测试运行态中的环...

  • 各种JVM调试

    jps 需要用到jps来显示相关详细信息。 命令格式:jps [options ] [ hostid ][opti...

  • 浅谈 Java 调试原理

    Java 平台调试架构(JPDA)由三种接口组成,共同为应用开发调试提供支持。 其中 JVM TI (Tools ...

  • 1.Tomcat使用IDEA远程Debug调试的讲解

    JAVA 支持调试功能,本身提供了一个简单的调试工具JDB,支持设置断点及线程级的调试同时,不同的JVM通过接口的...

  • 从OOM到JVM内存分配

    java环境 构造OOM条件 1. 设置JVM堆大小,固定40M 2. 设置打印GC信息 配置JVM调试参数 测试...

  • JVM参数

    JMX监控调试参数 jps命令 jstat 上图表头描述: JVM启动参数| 参数 | 描述 ||-----|--...

网友评论

      本文标题: jvm 调试

      本文链接:https://www.haomeiwen.com/subject/bmityxtx.html