Search code examples
crashjvmstackcrash-reports

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


In a hs_err_pidxxx.log file there is a section 'Top of Stack' looking like that:

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

I understand that the first column is the stack address and I think the last column is the address of the function, but what about the second column? I also wonder if these are machine dependent...

Any info would be great.

I found some info on https://docs.oracle.com/javase/9/troubleshoot/fatal-error-log.htm but it does not explain any details.


Solution

  • This is the dump of the stack memory, 16 bytes per line.

    On 64-bit systems the memory contents is grouped in 64-bit values:

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

    On 32-bit systems it is grouped in 32-bit values:

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

    Related conference videos: