GDB调试时常见错误与解决

搜索路径不对

现象

gdb进入时出现大量报错

warning: .dynamic section for "/usr1/carrot/cluster/app/lib/libdssapi.so" is not at the expected address (wrong library or version mismatch?)
warning: .dynamic section for "/usr1/carrot/cluster/app/lib/postgresql/security_plugin.so" is not at the expected address (wrong library or version mismatch?)
warning: .dynamic section for "/usr1/carrot/cluster/app/lib/libdms.so" is not at the expected address (wrong library or version mismatch?)
warning: .dynamic section for "/usr1/carrot/cluster/app/lib/libclient.so" is not at the expected address (wrong library or version mismatch?)
Missing separate debuginfo for /usr1/carrot/cluster/app/lib/libxml2.so.2
Missing separate debuginfo for /usr1/carrot/cluster/app/lib/libssl.so.1.1
Missing separate debuginfo for /usr1/carrot/cluster/app/lib/libcrypto.so.1.1
Missing separate debuginfo for /usr1/carrot/cluster/app/lib/libz.so.1

之后bt命令打印堆栈不全,无法调试。

(gdb) bt
....
#6  <signal handler called>
#7  0x0000ffff0d076570 in ?? ()
#8  0x0000fffb511b97a0 in ?? ()
#9  0x0000ffff0d0b1e50 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

分析

大量的库符号消失导致无法调试,打印不出来堆栈。根本原因是这些.so的搜索路径不对导致的。
寻找的是/usr1/carrot/cluster/app/lib路径下,而我们期望的是/usr1/carrot/log_bak/I8J8O7/cluster/app_6460c491/lib路径。

解决

1、info sharedlibrary查看当前相应库的载入路径。

(gdb) info sharedlibrary
From                To                  Syms Read   Shared Object Library
0x0000ffff1e941c20  0x0000ffff1ea448e0  Yes (*)     /usr1/carrot/cluster/app/lib/libxml2.so.2
0x0000ffff1e8619e0  0x0000ffff1e875d24  Yes (*)     /usr/lib64/libcrypt.so.1
0x0000ffff1e831100  0x0000ffff1e831f3c  Yes (*)     /usr/lib64/libdl.so.2
0x0000ffff1e7afc30  0x0000ffff1e7f638c  Yes (*)     /usr1/carrot/cluster/app/lib/libssl.so.1.1
0x0000ffff1e5a1018  0x0000ffff1e6ebf7c  Yes (*)     /usr1/carrot/cluster/app/lib/libcrypto.so.1.1
0x0000ffff1e4b22b0  0x0000ffff1e4b5484  Yes (*)     /usr/lib64/librt.so.1
0x0000ffff1e4728b0  0x0000ffff1e47f56c  Yes (*)     /usr1/carrot/cluster/app/lib/libz.so.1
0x0000ffff1e40a950  0x0000ffff1e43a3ec  Yes (*)     /usr1/carrot/cluster/app/lib/libeSDKOBS.so
0x0000ffff1e3bd3c8  0x0000ffff1e3cde68  Yes (*)     /usr1/carrot/cluster/app/lib/libeSDKLogAPI.so
0x0000ffff1e3612b0  0x0000ffff1e38f720  Yes (*)     /usr1/carrot/cluster/app/lib/libpcre.so.1
0x0000ffff1e2422c0  0x0000ffff1e26d40c  Yes (*)     /usr1/carrot/cluster/app/lib/libiconv.so.2
0x0000ffff1e1f5310  0x0000ffff1e20f9bc  Yes (*)     /usr1/carrot/cluster/app/lib/libnghttp2.so.14
0x0000ffff1e188128  0x0000ffff1e1aa7b8  Yes (*)     /usr1/carrot/cluster/app/lib/liblog4cpp.so.5
0x0000ffff1e0dd528  0x0000ffff1e134e48  Yes (*)     /usr1/carrot/cluster/app/lib/libcurl.so.4
0x0000ffff1e0724a0  0x0000ffff1e0a242c  Yes (*)     /usr1/carrot/cluster/app/lib/liblz4.so.1
0x0000ffff1e052130  0x0000ffff1e0590d4  Yes (*)     /usr1/carrot/cluster/app/lib/libcjson.so.1
0x0000ffff1e021fd0  0x0000ffff1e023b30  Yes (*)     /usr1/carrot/cluster/app/lib/libatomic.so.1
0x0000ffff1dff29f0  0x0000ffff1dff9188  Yes (*)     /usr1/carrot/cluster/app/lib/libmasstree.so
0x0000ffff1dd54e30  0x0000ffff1dd6d030  Yes (*)     /usr1/carrot/cluster/app/lib/libcgroup.so.1
0x0000ffff0da8ca20  0x0000ffff0db238d0  Yes (*)     /usr1/carrot/cluster/app/lib/libdcf.so
0x0000ffff0d9baac0  0x0000ffff0da53a38  Yes (*)     /usr1/carrot/cluster/app/lib/libzstd.so.1
0x0000ffff0d981130  0x0000ffff0d982304  Yes (*)     /usr1/carrot/cluster/app/lib/libcom_err_gauss.so.3
0x0000ffff0d90e1b0  0x0000ffff0d957ec0  Yes (*)     /usr1/carrot/cluster/app/lib/libgssapi_krb5_gauss.so.2
0x0000ffff0d805270  0x0000ffff0d88ce40  Yes (*)     /usr1/carrot/cluster/app/lib/libkrb5_gauss.so.3
0x0000ffff0d786140  0x0000ffff0d79bb78  Yes (*)     /usr1/carrot/cluster/app/lib/libgssrpc_gauss.so.4
0x0000ffff0d704a30  0x0000ffff0d73e590  Yes (*)     /usr1/carrot/cluster/app/lib/libk5crypto_gauss.so.3
0x0000ffff0d6c6aa0  0x0000ffff0d6d44bc  Yes (*)     /usr1/carrot/cluster/app/lib/libkadm5clnt_mit.so.12
0x0000ffff0d687bc0  0x0000ffff0d69b8d0  Yes (*)     /usr1/carrot/cluster/app/lib/libkadm5srv_mit.so.12
0x0000ffff0d635080  0x0000ffff0d643ca0  Yes (*)     /usr1/carrot/cluster/app/lib/libkdb5.so.10
0x0000ffff0d6039d0  0x0000ffff0d60c668  Yes (*)     /usr1/carrot/cluster/app/lib/libkrb5support_gauss.so.0
0x0000ffff0d4e3a58  0x0000ffff0d58df58  Yes (*)     /usr1/carrot/cluster/app/lib/libstdc++.so.6
0x0000ffff0d3e09b0  0x0000ffff0d3e0f44  Yes (*)     /usr/lib64/libaio.so.1
0x0000ffff0d3b3830  0x0000ffff0d3bb390  Yes (*)     /usr1/carrot/cluster/app/lib/libnuma.so.1
0x0000ffff0d3687f0  0x0000ffff0d380a30  Yes (*)     /usr/lib64/libncurses.so.6
0x0000ffff0d31e290  0x0000ffff0d32b6ac  Yes (*)     /usr/lib64/libtinfo.so.6
0x0000ffff0d24d800  0x0000ffff0d29ede0  Yes (*)     /usr/lib64/libm.so.6
0x0000ffff0d202df0  0x0000ffff0d211438  Yes (*)     /usr1/carrot/cluster/app/lib/libgcc_s.so.1
0x0000ffff0d1c6d50  0x0000ffff0d1d560c  Yes (*)     /usr/lib64/libpthread.so.0
0x0000ffff0d063c40  0x0000ffff0d156770  Yes (*)     /usr/lib64/libc.so.6
0x0000ffff1eab1080  0x0000ffff1eac7948  Yes (*)     /lib/ld-linux-aarch64.so.1
0x0000ffff0d011580  0x0000ffff0d012324  Yes (*)     /usr/lib64/libkeyutils.so.1
0x0000ffff0cfd3fe0  0x0000ffff0cfdfd54  Yes (*)     /usr/lib64/libresolv.so.2
0x0000fffefc442ff0  0x0000fffefc6d0f54  Yes (*)     /usr1/carrot/cluster/app/lib/libdssapi.so
0x0000ffff0cea29e0  0x0000ffff0cea961c  Yes (*)     /usr/lib64/libnss_files.so.2
0x0000ffff0b883de0  0x0000ffff0b8ba5d0  Yes (*)     /usr1/carrot/cluster/app/lib/postgresql/security_plugin.so
0x0000fffc864c0ff0  0x0000fffc86715f54  Yes (*)     /usr1/carrot/cluster/app/lib/libdms.so
0x0000fffc97a536e0  0x0000fffc97a62110  Yes (*)     /usr1/carrot/cluster/app/lib/libclient.so

2、使用set sysroot 路径set solib-search-path 路径 修改搜索路径

(gdb)  set solib-search-path /usr1/carrot/log_bak/I8J8O7/cluster/app_6460c491/lib:/usr/lib64

3、可以正常bt

参考:
https://www.cnblogs.com/tibetanmastiff/p/4759995.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值