`

jmap转换gcore的dump文件

 
阅读更多

找java进程

 

ps aux|grep java

yyy    4990  0.3  2.3 3098560 191312 ?      Sl   Aug29  16:11 /usr/xxx/jdk1.6.0_29/bin/java -Xms128m -Xmx768m -jar /usr/share/projectlibre/projectlibre.jar --silentlyFail true

 

 

使用gdb生成gcore快照文件

 

sudo gdb -q --pid=4990
【此处省略乱七八糟的输出内容】
......
0x00007ffc1672366b in pthread_join (threadid=140720663160576, thread_return=0x7fffe8470210) at pthread_join.c:92
92	pthread_join.c: No such file or directory.
(gdb) generate-core-file 
warning: target file /proc/4990/cmdline contained unexpected null characters
Saved corefile core.4990
(gdb) detach 
Detaching from program: /usr/xxx/jdk1.6.0_29/bin/java, process 4990
(gdb) quit

 

命令解释:
gdb -q --pid=4990
 
--pid后面跟着的是jvm的进程id
(gdb) generate-core-file 
 
这里调用命令生成gcore的dump文件
(gdb) detach 
 
detach是用来断开与jvm的连接的
(gdb) quit
 

quit简单了,退出gdb模式

方法1

用jmap转换gcore的dump文件变成hprof

sudo /usr/xxx/jdk1.6.0_29/bin/jmap -dump:format=b,file=heap.hprof /usr/xxx/jdk1.6.0_29/bin/java core.4990
Attaching to core core.4990 from executable /usr/xxx/jdk1.6.0_29/bin/java, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 20.4-b02
Dumping heap to heap.hprof ...
Finding object size using Printezis bits and skipping over...
Heap dump file created

 

 

接着就生成了heap.hprof这个文件

 

注意:jmap、java等指令必须是与启动4990进程一致的版本才可以成功转换,否则还是会有问题。

 

可以使用jvisualvm打开 heap.hprof查看jvm的快照信息。

 

方法2

可以直接通过jvisualvm的主菜单直接点击 Add VM Coredump 来加载gcore的dump文件进行自动转换,但也是需要jdk版本相同才可以,这个在点击该菜单选项之后的弹出窗口里会需要进行指定。

 

参考文章:

  1. http://www.tuicool.com/articles/JbyyUr
  2. http://stackoverflow.com/questions/9981080/core-dump-taken-with-gcore-jmap-conversion-to-hprof-file-format-fails-with-erro
  3. http://blog.163.com/yandong_8212/blog/static/1321539142010108112559362/
分享到:
评论

相关推荐

    jmap -dump:format=b,file=heapdump.hprof Pid堆栈文件分析工具

    本文将详细讲解如何使用`jmap`中的`-dump:format=b,file=heapdump.hprof`选项来生成堆栈文件,并利用MAT(Memory Analyzer Tool)进行分析。 首先,`jmap`是Java HotSpot虚拟机的一个命令行工具,它可以提供关于JVM...

    Jvm堆栈dump文件分析

    1. **获取dump文件**:当JVM出现问题时,通过JVM的命令行选项(如`-XX:+HeapDumpOnOutOfMemoryError`)或者使用如`jmap`命令生成heap dump文件。 2. **安装HeadAnalyzer**:解压`ha414.jar`文件,这是一个包含...

    java使用JMAP定位代码内存泄漏在哪

    1. **生成堆转储文件**:通过`jmap -dump:format=b,file=<filename> <pid>`命令,我们可以从运行中的Java进程生成一个heap dump文件,这个文件包含了Java堆内存的所有信息。 2. **查看堆概要**:`jmap -histo:live ...

    jmap Eclipse内存分析工具.rar

    1. **生成堆转储(Heap Dump)**: 使用`jmap -dump`命令,可以在运行时将Java堆的完整状态导出为一个二进制文件,通常以`.hprof`为扩展名。 2. **堆统计信息**: `jmap -histo`可以打印出堆中对象的数量和大小的直方...

    dump文件分析工具,.hprof memoryanalyzer_v1.5.0.rar

    1. **获取.dump文件**:当应用程序出现内存问题时,使用JVM的`jmap`命令或应用工具(如VisualVM)生成.hprof文件。 2. **导入到MAT**:解压缩`memoryanalyzer_v1.5.0.rar`,运行MAT,导入生成的.hprof文件。 3. **...

    Websphere dump文件分析JCA

    对于分析工作,开发者或系统管理员可能需要使用IBM提供的专门工具,例如`jconsole`、`jmap`、`jstack` 或 `VisualVM` 等,它们可以帮助解读dump文件,呈现详细的内存、线程和类加载器信息。此外,IBM的SupportPac...

    javacore\heapdump文件分析工具

    2. 使用`jmap -dump:format=b,file=heapdump.hprof <pid>`命令生成`heapdump`文件,其中`<pid>`是Websphere应用服务器进程ID。 3. 运行`ha`工具,指定`heapdump.hprof`文件作为输入。 4. 分析`ha`工具生成的报告,...

    MemoryAnalyzer分析dump文件

    或者,我们也可以通过JVisualVM或jmap工具手动触发dump文件的生成。 一旦有了dump文件,接下来就是导入到MAT。启动MAT,点击“Open Heap Dump”按钮,选择相应的dump文件。MAT将读取文件并对其进行解析,这个过程...

    heapdump分析工具

    要生成heapdump,可以使用JVM内置的命令行选项,例如`-XX:+HeapDumpOnOutOfMemoryError`来配置JVM,在出现OOM错误时自动创建heapdump,或者使用`jmap`工具(需要与JDK配套)手动触发dump: ```bash jmap -dump:...

    jmap+EclipseMAT:排查内存泄漏的好工具.pdf

    1. 输出堆 heap 信息:jmap -dump:format=b,file=f1 <pid> 可以将指定进程的堆 heap 输出到文件 f1 中。 2. 分析内存使用情况:jmap <pid> 可以打印出指定进程的内存使用情况,包括堆 heap 的大小、使用率、垃圾回收...

    java dump分析工具ha456

    当遇到内存溢出问题时,通常会先使用`jmap`生成dump文件,然后使用专门的分析工具,如Eclipse Memory Analyzer (MAT)、VisualVM等对dump文件进行解析。这些工具能帮助我们找到内存泄漏的根源,识别长期存活的大对象...

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解.docx

    jmap 主要用来生成堆dump文件。语法格式如下:jmap [options] pid 或 jmap [options] executable core。指令行参数选项解释如下: * -dump 生成堆dump文件 * -heap 生成堆dump文件,包括堆的详细信息 * -histo 生成...

    jvm信息jmap使用的基本方法教程

    使用`-dump`选项可以将堆内存转储为hprof二进制格式文件,这对于离线分析非常有用: ``` jmap -dump:live,format=b,file=heap.bin ``` 其中`live`表示只导出活动对象,`format=b`指定二进制格式,`file=heap....

    jmap工具~MA.zip

    当系统出现内存溢出问题时,使用`jmap -dump:format=b,file=<filename> <pid>`命令可以生成堆内存的dump文件。这里的`<filename>`是你指定的文件名,`<pid>`是Java进程的ID。这个文件包含了JVM运行时的所有对象信息...

    JavaDump分析

    JavaDump是Java虚拟机在运行时的快照,记录了Java虚拟机的状态和信息,并将其保存到一个文件中。这个文件可以用于后续的分析,以帮助开发者理解程序的运行状况,特别是当程序出现故障或者性能问题时。 JavaDump文件...

    tda分析线程dump的工具

    线程 Dump 分析是 IT 系统性能优化中不可或缺的一部分,尤其在 Java 应用程序中,当系统出现响应慢或者卡死等异常情况时,通过获取和分析线程 Dump 文件,我们可以找出导致问题的线程,定位内存泄漏、死锁等问题。...

    JVM夺命连环问面试题分享给需要的同学.docx

    JVM夺命连环问 JVM 讲讲JVM的10种垃圾回收器? 什么是垃圾回收中的STW?...jmap 命令生成 dump 文件 使用 jcmd 命令生成 dump 文件 2.使用相关工具,比如阿里的 Arthas 工具进行分析 3.使用jmap -histo 命令排查

    Heap Analyzer

    快速定位可能发生内存泄露的区域,提高排查效率,由于jvisualvm或jmap生成的dump文件太大,常常需要用到dump文件分析工具对dump文件进行分析。HeapAnalyzer通过分析heapdump文件,以了解哪些对象占用了太多的堆栈...

    java内存分析工具dumpAnalyzer

    1. **生成dump文件**:当应用出现性能问题时,可以使用JDK自带的`jmap`命令或者操作系统的工具生成堆转储文件。 2. **打开dumpAnalyzer**:导入生成的dump文件到dumpAnalyzer中,启动分析。 3. **分析与诊断**:...

Global site tag (gtag.js) - Google Analytics