在hs_err_pidxxx.log文件中,“堆栈顶部”部分如下所示:

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:  ... 

相关 session 视频:
  • Andrei Pangin - JVM crash dump analysis
  • Volker Simonis - Analyzing HotSpot Crashes

  • 评论关闭
    IT序号网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!