以下段错误消息的正确解释是什么?segfault at 10 ip 00007f9bebcca90d sp 00007fffb62705f0 error 4 in libQtWebKit.so.4.5.2[7f9beb83a000+f6f000]segfault at 10 ip
以下段错误消息的正确解释是什么?
segfault at 10 ip 00007f9bebcca90d sp 00007fffb62705f0 error 4 in libQtWebKit.so.4.5.2[7f9beb83a000+f6f000]
segfault at 10 ip 00007fa44d78890d sp 00007fff43f6b720 error 4 in libQtWebKit.so.4.5.2[7fa44d2f8000+f6f000]
segfault at 11 ip 00007f2b0022acee sp 00007fff368ea610 error 4 in libQtWebKit.so.4.5.2[7f2aff9f7000+f6f000]
segfault at 11 ip 00007f24b21adcee sp 00007fff7379ded0 error 4 in libQtWebKit.so.4.5.2[7f24b197a000+f6f000]
这是一个由于跟随空指针尝试查找要运行的代码(即在获取指令期间)而导致的段错误。
运行 addr2line -e yourSegfaultingProgram 00007f9bebcca90d
(并针对给定的其他指令指针值重复此操作)以查看错误发生的位置。更好的方法是获取经过调试的版本,并在 gdb 等调试器下重现问题。
不幸的是,你被坑了;事后不可能知道动态链接器将库放在内存中的什么位置。在 gdb
.
以下是各个字段的细分:
p4
p5
p6
p7
/* * Page fault error code bits: * * bit 0 == 0: no page found 1: protection fault * bit 1 == 0: read access 1: write access * bit 2 == 0: kernel-mode access 1: user-mode access * bit 3 == 1: use of reserved bit detected * bit 4 == 1: fault was an instruction fetch * bit 5 == 1: protection keys block access * bit 15 == 1: SGX MMU page-fault */