双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

关于gdb “Unable to find libthread_db matching inferior's thread library”的解决办法

wyllan wyllan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在移植gdb的过程中常会出现
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.
的提示信息,

libthread_db是用来支持“调试多线程程序”的函数库

因为现在的程序绝大多数都是多线程的,所以这个问题还是必须要解决的。

解决办法:
1.首先要确保目标板的系统中有libthread_db.so.1文件,如果没有可以在相应交叉编译工具的相关lib目录下找到,
例如我的就放在“4.7.3/arm-linux-gnueabihf/libc/lib/arm-linux-gnueabihf”下,需要把libthread_db-1.0.so拷贝到
目标系统的/lib或/usr/lib等函数库可以访问到的目录中,并创建一个相应的软连接libthread_db.so.1
2.确保auto-load libthread-db已经启用,可以在gdb用“show auto-load libthread-db”命令查看,设置命令为
”set auto-load libthread-db [on|off]“
3.需要设置auto-load safe-path, 这个路径实际上是被libthread_db信任的可执行程序(包括脚本)的路径,默认为空,
所以gdb本 身也不被信任,所以需要配置其路径 如"set auto-load safe-path /bin:/usr/bin:....."
4.设置libthread-db-search-path,即设置libthread_db的所在路径,可以用show libthread-db-search-path命令查看其设置,
设置命令为set libthread-db-search-path /lib

到此为止问题应该就能解决了,有关 libthread-db的更多内容请访问:
http://www.sourceware.org/gdb/current/onlinedocs/gdb/libthread_005fdb_002eso_002e1-file.html
https://www.sourceware.org/gdb/current/onlinedocs/gdb/Auto_002dloading-safe-path.html#Auto_002dloading-safe-path
https://www.sourceware.org/gdb/current/onlinedocs/gdb/Threads.html#set%20libthread%2ddb%2dsearch%2dpath



...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
wyllan
Linux/Unix社区 23,224 成员 74,535 内容