【发布时间】:2018-10-10 12:06:07
【问题描述】:
我遇到了分段错误。系统日志报告以下内容:
segfault at 0 ip 00000000f71ff256 sp 00000000f44fee50 error 4 in libprotobuf-c.so.0.0.0[f71f8000+f000]
所以,libprotobuf-c.so 在0xf71f8000 加载。当我在 gdb 中加载相应的核心文件并尝试info sharedlibrary 时,它显示FROM 地址为0xf71f9f70,这与 syslog 显示的不同。我无法理解这种不匹配。有人可以帮忙吗?
0xf71f9f70 0xf7204028 Yes (*) /usr/lib/libprotobuf-c.so.0
【问题讨论】:
-
我已经重新打开了,因为您的问题不是关于 DLL,而是关于 .so 库
-
@Jean-FrançoisFabre 感谢您重新打开。您之前对这种行为的评论是否仍然有效?为什么地址不匹配?
-
我可以谈论 Windows 和该死的 DLL,但在 Linux 上可能不同。也就是说,请注意有 2 个地址:理论地址和实际加载地址,所以对于 linux,问题可能是相同的。除了对您的问题进行投票之外,我无法提供更多帮助。
标签: c linux gdb shared-libraries