【问题标题】:gdb requires libpthread in QNXgdb 在 QNX 中需要 libpthread
【发布时间】:2014-08-20 06:08:05
【问题描述】:

所以我遇到了一个严重的问题,即从foundry27(qnx 软件站点)下载的gdb 的qnx 版本需要libpthread.so.1

qnx:/root/# gdb 
ldd:FATAL: Could not load library libpthread.so.1

现在这对我来说很有趣,因为根据here 和我自己过去的经验,QNX 中没有 pthread 共享库,pthread 内容是 libc 的一部分。

我知道这是一个很长的镜头,但以前有人遇到过吗?

编辑:

qnx:/root/# uname -a
QNX qnx 6.5.0 2010/07/09-14:44:03EDT x86pc x86

我尝试从这里下载 qnx: http://community.qnx.com/sf/frs/do/viewRelease/projects.toolchain/frs.gdb.gdb_7_6_r863

我得到了nto-gdb版本,因为选项如下:

gdb-prereq-linux.tgz
gdb-prereq-win32.tgz
linux-gdb-7.6.tar.gz
win32-gdb-7.6.zip
nto-arm-gdb-7.6.tar.gz
nto-gdb-7.6.tar.gz

GDB 信息

ls -l $(which -a gdb)
lrwxrwxrwx  1 501   501 10 Jul 09 14:21 /usr/qnx650/host/qnx6/x86/usr/bin/gdb -> ntox86-gdb

GDB 调试信息

libs: load_object: attempt load of libpthread.so.1
debug: find_file:1151: name=libpthread.so.1 libpath=:/root/SMG/extern/libs/opendds/OpenDDS_ACE_TAO/ACE_wrappers/lib:/root/SMG/extern/libs/opendds/OpenDDS_ACE_TAO/DDS/lib:/usr/local/lib rpath=/usr/pkg/lib
debug: searchpath:1095: name=libpthread.so.1 path=/usr/pkg/lib amode=4 bufsize=1025
debug: searchpath:1119: trying /usr/pkg/lib/libpthread.so.1
debug: searchpath:1130:/usr/pkg/lib/libpthread.so.1: failed (No such file or directory)
debug: searchpath:1095: name=libpthread.so.1 path=:/root/SMG/extern/libs/opendds/OpenDDS_ACE_TAO/ACE_wrappers/lib:/root/SMG/extern/libs/opendds/OpenDDS_ACE_TAO/DDS/lib:/usr/local/lib amode=4 bufsize=1025
debug: searchpath:1119: trying libpthread.so.1
debug: searchpath:1130:libpthread.so.1: failed (No such file or directory)
debug: searchpath:1119: trying /root/SMG/extern/libs/opendds/OpenDDS_ACE_TAO/ACE_wrappers/lib/libpthread.so.1
debug: searchpath:1130:/root/SMG/extern/libs/opendds/OpenDDS_ACE_TAO/ACE_wrappers/lib/libpthread.so.1: failed (No such file or directory)
debug: searchpath:1119: trying /root/SMG/extern/libs/opendds/OpenDDS_ACE_TAO/DDS/lib/libpthread.so.1
debug: searchpath:1130:/root/SMG/extern/libs/opendds/OpenDDS_ACE_TAO/DDS/lib/libpthread.so.1: failed (No such file or directory)
debug: searchpath:1119: trying /usr/local/lib/libpthread.so.1
debug: searchpath:1130:/usr/local/lib/libpthread.so.1: failed (No such file or directory)
debug: searchpath:1095: name=libpthread.so.1 path=/proc/boot:/lib:/usr/lib:/lib/dll:/opt/lib amode=4 bufsize=1025
debug: searchpath:1119: trying /proc/boot/libpthread.so.1
debug: searchpath:1130:/proc/boot/libpthread.so.1: failed (No such file or directory)
debug: searchpath:1119: trying /lib/libpthread.so.1
debug: searchpath:1130:/lib/libpthread.so.1: failed (No such file or directory)
debug: searchpath:1119: trying /usr/lib/libpthread.so.1
debug: searchpath:1130:/usr/lib/libpthread.so.1: failed (No such file or directory)
debug: searchpath:1119: trying /lib/dll/libpthread.so.1
debug: searchpath:1130:/lib/dll/libpthread.so.1: failed (No such file or directory)
debug: searchpath:1119: trying /opt/lib/libpthread.so.1
debug: searchpath:1130:/opt/lib/libpthread.so.1: failed (No such file or directory)
debug: ldd:find_file:1175:libpthread.so.1: search failed
ldd:FATAL: Could not load library libpthread.so.1

【问题讨论】:

  • 是的,pthread 内容是 QNX 中 libc 的一部分。但是您并不想在 QNX 主机上运行 gdb,对吗? (您的提示确实是“qnx:”)如果尝试在 QNX 上运行,那么下一个问题是您是否正在运行为 QNX 构建的 gdb 版本(而不是,例如,用于 Linux)您能否更新您的问题在您尝试运行 gdb 的主机上输出“uname -a”,以及您从 F27 中提取的 gdb 存档的完整链接(不想猜测您可能是在那里发布的几个版本中的哪一个)使用)。
  • @maverick 感谢您的回复,已添加额外信息。
  • 谢谢; uname -a 的输出更可取,因为它也提供了架构(我假设您使用的是 x86)。请再添加两个测试: 1. "ls -l $(which -a gdb)" 的输出(查看 gdb 到底是什么符号链接,以及目标上是否有多个 gdb-s); 2.尝试使用“DL_DEBUG=all gdb”运行gdb;这将输出大量的库解析信息,并可能提示它为什么要尝试查找 libpthread.so.1。 (我从链接下载的 ntox86-gdb 二进制文件不包含对 libpthread.so.1 的任何引用,因此它可能是通过另一个库引入的。)
  • @maverick,添加了该信息
  • 嗨,本,这并没有透露太多。您是否截断了日志的开头?我希望在开始寻找 libpthread.so.1 之前会有一些提示。如果您的日志实际上比您发布的更长,那么您能否在开头添加更多上下文?您还可以运行“use -i gdb”并粘贴结果吗?这将确保我们正在查看相同的二进制文件。

标签: gdb qnx


【解决方案1】:

原因是 Foundry 27 上提供的 GDB 可执行文件(后来的那些)是为 QNX 6.6 构建的,它是交叉编译并部署到系统而不是本地编译的。由于没有本地开发,因此 GDB 可执行文件无法在 QNX 6.5 上运行。

要解决此问题,请下载早期版本的 GDB 可执行文件。

【讨论】:

    猜你喜欢
    • 2020-03-31
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 2023-03-09
    • 1970-01-01
    • 2012-09-01
    相关资源
    最近更新 更多