A fatal error has been detected by the Java Runtime Environment: SIGSEGV, libjvm

前端 未结 9 1968
心在旅途
心在旅途 2020-11-29 03:50

Hi and thanks for reading,

I have the following error while running my program and can\'t figure out what the solution would be. I also looked at all the topics with

9条回答
  •  遥遥无期
    2020-11-29 04:20

    Here is assembly code:

    7f0b024734be:       48 8d 14 f5 00 00 00    lea    rdx,[rsi*8]
    7f0b024734c5:       00
    7f0b024734c6:       48 03 13                add    rdx,QWORD PTR [rbx]
    7f0b024734c9:       48 8d 7a 10             lea    rdi,[rdx+16]
    7f0b024734cd:       8b 5f 08                mov    ebx,DWORD PTR [rdi+8]
    7f0b024734d0:       89 d8                   mov    eax,ebx
    7f0b024734d2:       c1 f8 03                sar    eax,0x3
    7f0b024734d5:       85 db                   test   ebx,ebx
    7f0b024734d7:       0f 8e cb 05 00 00       jle    0x7f0b02473aa8
    

    And what it does is:

    rdx = 0x00007f0a808d4ed2 * 8; // equals 0x0003F854046A7690. WTF???
    rdx = rdx + something from old gen heap; // results 0x000600007f090486
    rdi = rdx + 16; // results 0x000600007f090496
    ebx = something from edi address (0x000600007f090496) + 8
    

    Well I've had a look at the address map and there is nothing mapped to 0x000600007f090496 which is why you are getting a SEGV. Are you getting the same error with 1.6.0_26 JVM? Can you try it on a 32bit JVM? Looks like a JVM issue to me. Why would it do the first rdx=0x0... * 8 thing?

提交回复
热议问题