【问题标题】:Linux core dump vs heap dump?Linux核心转储与堆转储?
【发布时间】:2017-01-29 09:30:57
【问题描述】:

我在 Linux 机器上有这个文件。对我来说,它看起来像核心转储,与堆转储不同。对吧?

8dbe79c2f000-8dbe79c34000 r--s 005f8000 fd:01 30800604                 /path../charsets.jar
8dbe79c34000-8dbe79c35000 r--s 00007000 fd:01 30800604                 /path../sunec.jar
8dbe79c35000-8dbe79c3a000 rw-p 00063000 fd:01 30800604                 /path../jsse.jar

.......

如果是核心转储,它代表什么?我了解 8dbe79c2f000-8dbe79c34000 应该是内存空间。但是这些信息代表什么?

  1. 30800604
  2. /path../charsets.jar
  3. fd:01

【问题讨论】:

  • 从哪里来的?你看,如果它是由一个失败的 JVM 生成的,它可能仍然是一个 java 堆转储。
  • 它已作为生产环境中的内存转储文件提供。所以我不确定它实际上是什么。但无论如何,它不包含对象详细信息,例如那个时间点内存中的对象是什么,它们的大小,没有预期作为堆转储的对象?所以在我看来它不像堆转储。

标签: java linux memory-management coredump memory-dump


【解决方案1】:

您是否尝试过file 命令。更多详情man 1 file 它在系统上显示如下所示的核心转储

➜  ~  file core.28983
core.28983: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from './a.out'
➜  ~

而 jar 文件通常不是核心文件,它们是 java 存档。 jar 上file 命令的输出看起来像我的系统上的以下内容

file /usr/share/texmf/scripts/ppower4/pp4p.jar
/usr/share/texmf/scripts/ppower4/pp4p.jar: Zip archive data, at least v1.0 to extract

【讨论】:

  • ELF 64 位 LSB 核心文件 x86-64
  • 你能详细说明一下我没明白吗?
  • file 命令会告诉你文件的类型。在上面的示例中,它表示它是 ELF 64 位核心文件。
猜你喜欢
  • 2011-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-17
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多