gdb 7.12.1-48.el7请求;调试信息安装";但是这些软件包已经安装了吗?

gdb 7.12.1-48.el7请求;调试信息安装";但是这些软件包已经安装了吗?,gdb,redhat,Gdb,Redhat,我在调试器下启动一个二进制文件,让它运行一段时间,然后按ctrl-c。gdb告诉我: Missing separate debuginfos, use: debuginfo-install keyutils-libs-1.5.8-3.el7.x86_64 krb5-libs-1.15.1-8.el7.x86_64 libattr-2.4.46-12.el7.x86_64 libcap-2.22-9.el7.x86_64 libcom_err-1.42.9-10.el7.x86_64 libgcc

我在调试器下启动一个二进制文件,让它运行一段时间,然后按ctrl-c。gdb告诉我:

Missing separate debuginfos, use: debuginfo-install keyutils-libs-1.5.8-3.el7.x86_64
krb5-libs-1.15.1-8.el7.x86_64 libattr-2.4.46-12.el7.x86_64 libcap-2.22-9.el7.x86_64
libcom_err-1.42.9-10.el7.x86_64 libgcc-4.8.5-16.el7_4.1.x86_64 libselinux-2.5-11.el7.x86_64
libstdc++-4.8.5-16.el7_4.1.x86_64 libuuid-2.23.2-43.el7_4.2.x86_64 libxml2-2.9.1-6.el7_2.3.x86_64
ncurses-libs-5.9-14.20130511.el7_4.x86_64 openssl-libs-1.0.2k-8.el7.x86_64 pcre-8.32-17.el7.x86_64 
xerces-c-3.1.1-8.el7_4.1.x86_64 xz-libs-5.2.2-1.el7.x86_64 zlib-1.2.7-18.el7.x86_64
但是我咨询了我的sysadm,他说这些软件包已经安装好了

我随机选择
libuuid
进行深入研究。我找到了包,并从中找到了文件内容:

[~]# rpm -qa | grep libuuid
libuuid-2.23.2-43.el7_4.2.x86_64

[~]# rpm -ql libuuid-2.23.2-43.el7_4.2.x86_64
/usr/lib64/libuuid.so.1                 <----- just a symbolic link
/usr/lib64/libuuid.so.1.3.0             <----- WE'LL SEE THIS IN LINE 3 OF STRACE GREP, BELOW
/usr/share/doc/libuuid-2.23.2           <---- just a dir
/usr/share/doc/libuuid-2.23.2/COPYING   <---- just a doc
哦哦。。。为什么GDB要求安装一个包,基本上只包含它已经读取的文件


操作系统是:Red Hat Enterprise Linux Server 7.4版(Maipo)

我们有一个gcc 4.8.5作为默认安装,但是安装了gcc 6和gcc 7,以便使用命令
scl enable devtoolset-6 tcsh
scl enable devtoolset-7 tcsh
激活。我在这个项目中使用6。在我深入研究之前,我很有信心这个库只会在
/opt/rh/devtoolset-6/root/
下被搜索,但strace证明了这一点

g++版本是:
g++(GCC)6.3.1 20170216(Red Hat 6.3.1-3)

gdb版本为:
GNU gdb(gdb)Red Hat Enterprise Linux 7.12.1-48。el7

您的系统管理员需要安装与gdb投诉的所有软件包相对应的debuginfo软件包。这些包的名称为
libuuid debuginfo
和类似的名称。可能还需要安装一些其他依赖项;有时debuginfo包包含源代码,有时源代码在另一个包中。
debuginfo install
命令将负责查找这些依赖项。如果这样做能解决问题(或不能),请让我们知道。Mark,1)我咨询过我的sysadm,他说这些软件包已经安装好了。上面的strace输出显示调试器实际上正在查找已安装的文件,例如/usr/lib64/libuuid.so.1.3.0。您的
rpm-qa | grep libuuid
输出显示未安装
libuuid debuginfo
。libuuid的debuginfo不在
/usr/lib64/libuuid.so.1.3.0
中,它位于strace输出显示不存在的
/usr/lib/debug/usr/lib64/libuuid.so.1.3.0.debug
中(enoint)。这应该是一个90KB的文件。哦,好的,马克,谢谢你一直支持我。我读得不够仔细。我需要与库同名但附加.debug的文件包。我正在跟踪我的sysadm,查看debuginfo安装是否未能安装它们,或者sysadm是否没有运行我请求的debuginfo安装,因为他认为它只会尝试安装我们已有的库。
> grep /usr/lib64/libuuid.so.1 gdb.trace
lstat("/usr/lib64/libuuid.so.1", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
readlink("/usr/lib64/libuuid.so.1", "libuuid.so.1.3.0", 4095) = 16
lstat("/usr/lib64/libuuid.so.1.3.0", {st_mode=S_IFREG|0755, st_size=20040, ...}) = 0
open("/usr/lib64/libuuid.so.1.3.0.debug", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug//usr/lib64/libuuid.so.1.3.0.debug", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
lstat("/usr/lib64/libuuid.so.1", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
readlink("/usr/lib64/libuuid.so.1", "libuuid.so.1.3.0", 4095) = 16
lstat("/usr/lib64/libuuid.so.1.3.0", {st_mode=S_IFREG|0755, st_size=20040, ...}) = 0
open("/usr/lib64/libuuid.so.1.3.0-gdb.gdb", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug/usr/lib64/libuuid.so.1.3.0-gdb.gdb", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/opt/rh/devtoolset-6/root/usr/share/gdb/auto-load/usr/lib64/libuuid.so.1.3.0-gdb.gdb", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/gdb/auto-load/usr/lib64/libuuid.so.1.3.0-gdb.gdb", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
lstat("/usr/lib64/libuuid.so.1", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
readlink("/usr/lib64/libuuid.so.1", "libuuid.so.1.3.0", 4095) = 16
lstat("/usr/lib64/libuuid.so.1.3.0", {st_mode=S_IFREG|0755, st_size=20040, ...}) = 0
open("/usr/lib64/libuuid.so.1.3.0-gdb.py", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug/usr/lib64/libuuid.so.1.3.0-gdb.py", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/opt/rh/devtoolset-6/root/usr/share/gdb/auto-load/usr/lib64/libuuid.so.1.3.0-gdb.py", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/gdb/auto-load/usr/lib64/libuuid.so.1.3.0-gdb.py", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
lstat("/usr/lib64/libuuid.so.1", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
readlink("/usr/lib64/libuuid.so.1", "libuuid.so.1.3.0", 4095) = 16
lstat("/usr/lib64/libuuid.so.1.3.0", {st_mode=S_IFREG|0755, st_size=20040, ...}) = 0
open("/usr/lib64/libuuid.so.1.3.0-gdb.gdb", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug/usr/lib64/libuuid.so.1.3.0-gdb.gdb", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/opt/rh/devtoolset-6/root/usr/share/gdb/auto-load/usr/lib64/libuuid.so.1.3.0-gdb.gdb", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/gdb/auto-load/usr/lib64/libuuid.so.1.3.0-gdb.gdb", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
lstat("/usr/lib64/libuuid.so.1", {st_mode=S_IFLNK|0777, st_size=16, ...}) = 0
readlink("/usr/lib64/libuuid.so.1", "libuuid.so.1.3.0", 4095) = 16
lstat("/usr/lib64/libuuid.so.1.3.0", {st_mode=S_IFREG|0755, st_size=20040, ...}) = 0
open("/usr/lib64/libuuid.so.1.3.0-gdb.py", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug/usr/lib64/libuuid.so.1.3.0-gdb.py", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/opt/rh/devtoolset-6/root/usr/share/gdb/auto-load/usr/lib64/libuuid.so.1.3.0-gdb.py", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/share/gdb/auto-load/usr/lib64/libuuid.so.1.3.0-gdb.py", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)