GDB调试警告

Alp*_*tur 2 qt gdb libc

当我尝试通过gdb在Qt或直接从终端调试我的核心转储时,它给了我一堆警告,如下所示.因此我的回溯无法正常工作.

警告:无法找到libthread_db匹配劣质的线程库,线程调试将无法使用.

警告:无法找到libthread_db匹配劣质的线程库,线程调试将无法使用.

警告:无法加载共享库符号).你需要"set solib-search-path"或"set sysroot"吗?

这是因为我的可执行文件是在没有调试符号的情况下构建的,还是glibc的问题?你有解决方法吗?

Emp*_*ian 9

这是因为我的可执行文件是在没有调试符号的情况下构建的,还是glibc的问题?

这与您的可执行文件无关.

GDB需要一个libthread_db.so.1匹配你的版本libpthread.so.0,而不是找到这样的版本.

可能的原因(从大多数到最不可能):

  • 你已经剥离了libpthread.so.0(要这样做).
  • 你升级了glibc,但升级不完整,没有更新 libthead_db.so.1
  • 您正在使用某种形式的交叉编译环境,真正需要set solib-search-pathset libthread-db-search-path使得GDB可以找到匹配libthread_db.so.1

您可以看到libthread_dbGDB正在尝试的版本set debug libthread-db 1.