设置GDB动态库搜索路径

一、启动gdb调试

方式一:

gdb exe core

方式二:

gdb exe
(gdb) core-file core

方式三:

gdb -c core
(gdb) file exe

二、GDB设置动态库搜索路径

当GDB无法显示so动态库的信息或者显示信息有误时,通常是由于库搜索路径错误导致的,可使用set sysrootset solib-absolute-prefixset solib-search-path来指定库搜索路径。

  1. set sysrootset solib-absolute-prefix 是同一条命令,实际上,set sysroot是set solib-absolute-prefix 的别名
  2. set solib-search-path设置动态库的搜索路径,该命令可设置多个搜索路径,路径之间使用“:”隔开(在linux中为冒号,DOS和Win32中为分号)。

set solib-absolute-prefix 与 set solib-search-path 的区别

总体上来说solib-absolute-prefix设置库的绝对路径前缀,只对绝对路径有效;而solib-search-path设置库的搜索路径,对绝对路径和相对路径均起作用。(编译器自动链接的so库多采用绝对路径)。

设备上缺少lib库或者lib库被strip时,需要用到其他路径的动态库。

set solib-absolute-prefix /mnt/test/lib
set solib-search-path /opt/fslc-framebuffer/2.4.4/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/lib:/opt/fslc-framebuffer/2.4.4/sysroots/armv7at2hf-neon-fslc-linux-gnueabi/usr/lib

#其他方式、设置系统动态库路径
set sysroot /opt/xxx/sysroots/aarch64-poky-linux

完整示例

gdb exe
(gdb) set solib-absolute-prefix /mnt/test/lib
(gdb) set solib-search-path /mnt/test/lib
(gdb) core-file core

(gdb) bt

其他命令

info sharedlibrary 

三、参考资料

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值