交叉编译:linaro-gdb调试core文件,堆栈显示问号

问题背景

交叉编译环境的linaro-gdb可以用了,结果打开core文件,显示堆栈都是??

aarch64-linux-gun-gdb ./test core

warning: /lib/libpthread.so.0': Shared library architecture unknown is not compatible with target architecture aarch64.
warning:'/lib/libdl.so.2': Shared library architecture unknown is not compatible with target architecture aarch64.
warning: /lib/librt.so.1': Shared library architecture unknown is not compatible with target architecture aarch64.
warning: /lib/libstdc++.so.6': Shared library architecture unknown is not compatible with target architecture aarch64.
warning: /lib/libm.so.6': Shared library architecture unknown is not compatible with target architecture aarch64.
warning: /lib/libgcc_s.so.1': Shared library architecture unknown is not compatible with target architecture aarch64.
warning: /lib/libc.so.6': Shared library architecture unknown is not compatible with target architecture aarch64.
warning: Could not load shared library symbols for /lib/ld-linux-aarch64.so.1.
Do you need "set solib-search-path" or "set sysroot"?
varning: Loadable section ",note.gnu.property" outside of ELF segments
warning: Loadable section ".note.gnu.property" outside of ELE segments
Core was generated by './vdevicemonitor'.
Proaram terminated with sianal SIGABRT, Aborted.
#0 0x000040002b80cld4 in ?? () from /lib/libc.so.6

原因

实际显示??的原因就是它提示的原因。 就是它在交叉环境下找不到这个平台的动态库,无法加载。( 其实我理解它本身有可能继续加载堆栈的,因为使用x /200a $sp 还是可以看档当前进程文件自身带的符号表的。 只是gdb发现前面的加载不了后面的也就不加载了)。

解决方法

解决的方法实际提示中也给了。 就是用一下set solib-search-path或set sysroot配置一下动态库搜索路径,让他知道到哪里去搜索就好。

前提是现有动态库。 可以到对应的arm系统里把缺少的动态库挨个按照文件结构下载好

然后用set sysroot /home/test/arm_lib

然后gdb就会重新加载符号表,然后堆栈也就有了。

试了下set solib-search-path好像不太好使,不好使。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值