gpt4 book ai didi

c - 为什么 syslog 和 gdb 对同一个共享库显示不同的加载地址?

转载 作者:IT王子 更新时间:2023-10-29 00:37:06 26 4
gpt4 key购买 nike

我遇到了段错误。系统日志报告以下内容:

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

最佳答案

So, libprotobuf-c.so is loaded at 0xf71f8000. When I loaded the respective core file in gdb and tried info sharedlibrary, it shows FROM address as 0xf71f9f70 which is different from what syslog showed.

实际上它们是一样的。 GDB 将 .text 的开头显示为 From 地址。

如果你做 readelf -WS/usr/lib/libprotobuf-c.so.0 | grep '\.text',你会发现 .text0xf71f9f70 - 0xf71f8000 == 0x1f70 开始。

关于c - 为什么 syslog 和 gdb 对同一个共享库显示不同的加载地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52739881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com