如何在 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: ...
相关会议视频:
在 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: ...
相关会议视频: