我用GDB进行调试多线程应用程序,但调试多线程应用程序,当我在gdb启动程序我得到警告:无法使用gdb
警告:无法找到libthread_db所匹配劣质的线程库,线程调试将不可用。
我仍然可以调试,但我不能调试除主线程以外的任何东西。我已阅读论坛,建议安装软件包libthread-db1和glibc-dbg,但这并不能解决我的问题。
在我的机器上,我有3个文件/lib/libthread_db.so.1
,/lib/.debug/libthread_db-1.0.so
和/lib/libthread_db-1.0.so
。我尝试在名称libthread_db.so
中创建/lib
的符号链接,其中一次指向/lib/libthread_db.so.1
文件,另一次指向/lib/libthread_db-1.0.so
文件,并且我创建了指向/lib/.debug/libthread_db-1.0.so
的符号链接,所有这些都没有运气。
在gdb中我已经尝试设置libthread-db-search-path
到/lib
(有一次设置为libthread_db.so.1
符号链接,而且一旦libthread_db-1.0.so
,并且也设置为/lib/.debug
。
任何建议?我使用Linux的埃为v2.6.39的的BeagleBoard-XM
请注意,我从2.6.32内核(Angstrom-Beagleboard-demo-image-glibc-ipk-2011.1-beagleboard.rootfs.tar.bz2)开始使用根文件系统,并将linux源代码复制到/ usr/src,并交叉编译基于2.6.39的新内核。这可能是版本不匹配的原因。我有来自交叉编译器的线程共享目标文件,我尝试用交叉编译器替换现有的.so文件,但它导致崩溃。有任何想法吗? – Samuel 2012-07-23 15:00:33
嗨我目前有一个问题在埃格尔运行在beaglebone上。你有没有想过解决方案? – 2013-06-19 23:30:09
此外,请确保您的libpthread版本不是“未被删除” – 2016-07-04 08:22:54