调试工具

jdk自带的工具

  • jmap
  • jconsole
  • VisualVM

jmap

  • jmap -histo:live pid 列出该进程的所有活动实例统计信息
  • jmap -dump:live,file=test.map pid 转储到文件
  • jmap -J-Xms256m -dump:live,file=test.map pid 指定内存,防止内存不足
  • jmap -dump:format=b,file=test.map pid 转储堆快照
C:\>jmap
Usage:jmap [option] <pid>(to connect to running process)jmap [option] <executable <core>(to connect to a core file)jmap [option] [server_id@]<remote server IP or hostname>(to connect to remote debug server)where <option> is one of:<none>               to print same info as Solaris pmap-heap                to print java heap summary-histo[:live]        to print histogram of java object heap; if the "live"suboption is specified, only count live objects-clstats             to print class loader statistics-finalizerinfo       to print information on objects awaiting finalization-dump:<dump-options> to dump java heap in hprof binary formatdump-options:live         dump only live objects; if not specified,all objects in the heap are dumped.format=b     binary formatfile=<file>  dump heap to <file>Example: jmap -dump:live,format=b,file=heap.bin <pid>-F                   force. Use with -dump:<dump-options> <pid> or -histoto force a heap dump or histogram when <pid> does notrespond. The "live" suboption is not supportedin this mode.-h | -help           to print this help message-J<flag>             to pass <flag> directly to the runtime system

mat (Memory Analysis Tool)

  • 内存分析工具

jhat (Java Heap Analysis Tool)

  • 堆内存分析工具
  • jhat test.map 分析堆快照,并生成html文件
  • jhat -J-Xmx512m test.map 指定内存,防止内存不足
C:\>jhat
ERROR: No arguments supplied
Usage:  jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>-J<flag>          Pass <flag> directly to the runtime system. Forexample, -J-mx512m to use a maximum heap size of 512MB-stack false:     Turn off tracking object allocation call stack.-refs false:      Turn off tracking of references to objects-port <port>:     Set the port for the HTTP server.  Defaults to 7000-exclude <file>:  Specify a file that lists data members that shouldbe excluded from the reachableFrom query.-baseline <file>: Specify a baseline object dump.  Objects inboth heap dumps with the same ID and same class willbe marked as not being "new".-debug <int>:     Set debug level.0:  No debug output1:  Debug hprof file parsing2:  Debug hprof file parsing, no server-version          Report version number-h|-help          Print this help and exit<file>            The file to read
For a dump file that contains multiple heap dumps,
you may specify which dump in the file
by appending "#<number>" to the file name, i.e. "foo.hprof#3".All boolean options default to "true"

tips

  • jps(Java Virtual Machine Process Status Tool )
  • jps命令可以查看当前使用java虚拟机的进程

jstack

jstack可以用来查看Java进程里的线程都在干什么,这通常对于应用没反应,非常慢等等场景都有不小的帮助,jstack默认只能看到Java栈,而jstack -m则可以看到线程的Java栈和native栈,但如果Java方法被编译过,则看不到(然而大部分经常访问的Java方法其实都被编译过)。

C:\>jstack
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

jinfo

可以输出并修改运行时的java进程的opts。用处比较简单,用于输出JAVA系统参数及命令行参数。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788

where <option> is one of:-flag <name>         to print the value of the named VM flag-flag [+|-]<name>    to enable or disable the named VM flag-flag <name>=<value> to set the named VM flag to the given value-flags               to print VM flags-sysprops            to print Java system properties<no option>          to print both of the above-h | -help           to print this help message

javah

生成本地方法的头文件

转载于:https://www.cnblogs.com/achievec/p/6028760.html

【10-26】java调试技术学习笔记相关推荐

  1. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  2. java jdk 8学习笔记,Java JDK 8学习笔记 PDF_源雷技术空间

    资源名称:Java JDK 8学习笔记 PDF 内容简介: ●本书是作者多年来教学实践经验的总结,汇集了学员在学习课程或认证考试中遇到的概念.操作.应用等问题及解决方案 ●针对Java SE 8新功能 ...

  3. Java日志框架学习笔记

    Java日志框架学习笔记 文章目录 0 主流Java日志框架 1 log4j 1.1 理论知识 1.1.1 Loggers日志记录器 1.1.2 Appenders输出端 1.1.3 Layout日志 ...

  4. Java基础篇 学习笔记

    List item Java基础篇 学习笔记 java基础篇 第1章 计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. ...

  5. hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶

    hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶 一.回顾知识 1.myschool数据库和数据表的创建 (1)创建数据库 (2)数据库模型图 (3)创建数据表grand (4) ...

  6. Java快速入门学习笔记3 | Java语言中的表达式与操作符

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  7. SpringBoot整合第三方技术学习笔记(自用)

    SpringBoot整合第三方技术学习笔记 搬运黑马视频配套笔记 KF-4.数据层解决方案 KF-4-1.SQL 回忆一下之前做SSMP整合的时候数据层解决方案涉及到了哪些技术?MySQL数据库与My ...

  8. 01.Java 编程入门学习笔记20210307

    Java 编程入门学习笔记-day01 第0章:编程入门 1.计算机的概述 计算机 = 硬件 + 软件 1.1硬件:冯诺依曼体系 CPU: CPU的衡量标准:速度的计量单位是赫兹(Hz),1Hz相当于 ...

  9. java/android 设计模式学习笔记(3)---工厂方法模式

    这篇来介绍一下工厂方法模式(Factory Method Pattern),在实际开发过程中我们都习惯于直接使用 new 关键字用来创建一个对象,可是有时候对象的创造需要一系列的步骤:你可能需要计算或 ...

  10. [转]Java中文处理学习笔记——Hello Unicode

    Java中文处理学习笔记--Hello Unicode 作者: 车东 Email: chedongATbigfoot.com/chedongATchedong.com 写于:2002/07 最后更新: ...

最新文章

  1. java创建线程的两种方法区别
  2. 学科分类与代码_考研常识 | 2021硕士研究生学科门类、一级学科、二级学科、专业目录及代码查询...
  3. 利用BP神经网络 设计一个三层神经网络解决手写数字的识别问题
  4. 针对前端项目选择不同的前端框架
  5. metasploit中msf批量监测
  6. 在ROS中使用行为树
  7. vue kepp-alive实践总结
  8. 关于网络安全行业你知道多少?
  9. 计算机考研如何安排时间安排,2015年考研计算机复习计划及时间安排
  10. linux载入pytorch的预训练模型时遇到_pickle.UnpicklingError: unpickling stack underflow
  11. 苹果x为什么总黑屏_苹果X手机为什么突然黑屏了
  12. webrtc编译中的错误解决
  13. mysql新建用户、授予外网Ip访问权限
  14. 什么是EE(exploration and exploitation)问题
  15. 蓝桥杯100的阶乘约数
  16. webshell及工具
  17. Connector odbc 安装
  18. 2021年滴滴出行前端面试题目(一面)
  19. 应聘Morgan Stanley(转)
  20. 分层自动化测试体系模型

热门文章

  1. Windows下编译FFmpeg
  2. java循环怎么分析_Java for循环的几种用法分析
  3. html5 图形水平运动,【分享】HTML5的Canvas制作3D动画效果分享
  4. android multimedia框架总结,Android Multimedia框架总结(三)MediaPlayer中创建到setDataSource过程...
  5. os.system 获取打印值_react获取触发元素的属性 e.target.dataset
  6. 国内python镜像源记录
  7. go模块的使用,调用第三方模块方法---go模块的复用方法
  8. python 报了错TypeError: sequence item 0: expected str instance, int found
  9. c语言修改内存字节,要开学了,小白给大家一个C语言修改dnf内存的示范代码
  10. activity直接销毁_Android 关于Activity的销毁和重建