如何在 JVM 中读取 'Top of Stack' 生成的 hs_err_pidxxx.log

How to read 'Top of Stack' in JVM generated hs_err_pidxxx.log

在 hs_err_pidxxx.log 文件中有一段 'Top of Stack' 看起来像这样:

Top of Stack: (sp=0x00007f10346be930)
0x00007f10346be930:   00007f10346be990 00007f1011bb1e15
0x00007f10346be940:   00007f1011bb1b33 00007f10346be948
0x00007f10346be950:   00007f0f17aff3b0 00007f10346be9a8
0x00007f10346be960:   00007f0f17aff5a0 0000000000000000

我知道第一列是堆栈地址,我认为最后一列是函数地址,但是第二列呢?我也想知道这些是否依赖于机器...

任何信息都会很棒。

我在 https://docs.oracle.com/javase/9/troubleshoot/fatal-error-log.htm 上找到了一些信息,但没有解释任何细节。

这是堆栈内存的转储,每行 16 个字节。

在 64 位系统上,内存内容按 64 位值分组:

address:     <8 bytes at address> <8 bytes at address+8>
address+16:  ...

在 32 位系统上,它按 32 位值分组:

address:     <4 bytes at address> <at address+4> <at address+8> <at address+12>
address+16:  ...

相关会议视频: