Kar*_*amy 5 c linux gdb shared-libraries
我正面临分段错误.Syslog报告以下内容:
segfault at 0 ip 00000000f71ff256 sp 00000000f44fee50 error 4 in libprotobuf-c.so.0.0.0[f71f8000+f000]
Run Code Online (Sandbox Code Playgroud)
所以,libprotobuf-c.so被加载到0xf71f8000.当我在gdb中加载相应的核心文件并尝试时info sharedlibrary,它显示的FROM地址与0xf71f9f70syslog显示的不同.我无法理解这种不匹配.有人可以帮忙吗?
0xf71f9f70 0xf7204028 Yes (*) /usr/lib/libprotobuf-c.so.0
Run Code Online (Sandbox Code Playgroud)
因此,libprotobuf-c.so 加载于
0xf71f8000。当我在 gdb 中加载相应的核心文件并尝试 info sharelibrary 时,它显示的 FROM 地址与0xf71f9f70syslog 显示的不同。
其实它们是一样的。GDB 将开头显示.text为From地址。
如果您这样做readelf -WS /usr/lib/libprotobuf-c.so.0 | grep '\.text',您会发现.text从 开始0xf71f9f70 - 0xf71f8000 == 0x1f70。