无法使用gdb调试多线程应用程序 [英] Unable to Debug Multi-Threaded Application with gdb

查看:4140
本文介绍了无法使用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.so 指向 /lib/.debug/libthread_db-1.0.so

在gdb中,我试过设置 libthread-db-search-path / lib (将symlink一次设置为 libthread_db.so.1 ,并且一次设置为 libthread_db-1.0.so ,并设置为 /lib/.debug



任何建议?我使用Angstrom Linux v2.6.39作为BeagleBoard-xm。

解决方案


警告:无法找到匹配劣质线程库的libthread_db

这意味着您的 /lib/libthread_db.so .1 不匹配哟ur /lib/libpthread.so.0 。这种不匹配可能是由于您安装了不同版本的 libc libthread_db 软件包,或者更新了其中一个或另一个版本的包管理系统。它也可能是你的包中的一个错误(即它们可能没有被正确构建)。



您应该忽略 /lib/.debug / * - 即不是您正在寻找的库。


I am debugging a multi-threaded application with gdb, but when I start the program in gdb I get the warning:

warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.

I can still debug, but I can't debug anything other than the main thread. I have read forums that suggest installing the packages libthread-db1 and glibc-dbg, but this does not correct the problem for me.

On my machine I have the 3 files /lib/libthread_db.so.1, /lib/.debug/libthread_db-1.0.so, and /lib/libthread_db-1.0.so. I tried creating symbolic links in /lib with the name libthread_db.so, one time pointing at the /lib/libthread_db.so.1 file, and another time pointing at the /lib/libthread_db-1.0.so file, and also I created the symbolic link /lib/.debug/libthread_db.so pointing to /lib/.debug/libthread_db-1.0.so, all with no luck.

In gdb I have tried setting libthread-db-search-path to /lib (with the symlink once set to libthread_db.so.1, and once to libthread_db-1.0.so, and also set to /lib/.debug.

Any suggestions? I am using Angstrom Linux v2.6.39 for the BeagleBoard-xm.

解决方案

warning: Unable to find libthread_db matching inferior's thread library

This means that your /lib/libthread_db.so.1 does not match your /lib/libpthread.so.0. Such mismatch could be the result of you installing different versions of libc and libthread_db packages, or updating one or the other outside of the package management system. It could also be an error in your packages (i.e. they may not be built correctly).

You should ignore /lib/.debug/* -- that is not the library you are looking for.

这篇关于无法使用gdb调试多线程应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆