C++;Ubuntu上的应用程序。安装gcc 4.8.1后,gdb不工作

C++;Ubuntu上的应用程序。安装gcc 4.8.1后,gdb不工作,gcc,gdb,Gcc,Gdb,我在Ubuntu12.04上安装了GCC4.8.1(我必须添加ppa才能做到这一点),现在gdb显示以下消息: 找不到动态链接器断点函数。 GDB将无法调试共享库初始值设定项 和跟踪显式加载的动态代码。无法加载5个库的共享库符号,例如/usr/lib/x86_64-linux-gnu/libstdc++.so.6。 使用“info sharedlibrary”命令查看完整的列表。 您需要“设置solib搜索路径”还是“设置系统根” 我用谷歌搜索了一下,我发现这篇文章最能回答我的问题: 然而,我

我在Ubuntu12.04上安装了GCC4.8.1(我必须添加ppa才能做到这一点),现在gdb显示以下消息:

找不到动态链接器断点函数。 GDB将无法调试共享库初始值设定项 和跟踪显式加载的动态代码。无法加载5个库的共享库符号,例如/usr/lib/x86_64-linux-gnu/libstdc++.so.6。 使用“info sharedlibrary”命令查看完整的列表。 您需要“设置solib搜索路径”还是“设置系统根”

我用谷歌搜索了一下,我发现这篇文章最能回答我的问题:


然而,我仍然不明白到底该做什么。有人能帮忙吗。谢谢

Gdb通常随工具链一起提供

您可能正在使用上一个工具链附带的gdb。使用

  which gdb
以发现您正在使用的gdb


要调试用新编译器编译的程序,您必须使用新的gdb,不管它是什么。

我也遇到了同样的问题,并且能够解决它

我从这个PPA()安装了GCC的最后一个“稳定”版本(4.8.1),在我不得不处理调试问题之前,一切都很完美。您可以注意到,在此PPA中,工具链没有提供用于处理编译器升级的GDB更新版本。事实上,我没有发现任何PPA提供更新版本的GDB

在我的例子中,我解决了这个问题,从GDB的网站()下载并安装了最新的稳定版本GDB(7.6)。这个版本的GDB能够解析符号,并提供使用GCC4.8.1生成的二进制文件的所有必要信息,即使我使用的是新的c++11标准(使用-std=c++11标志编译的代码)


考虑到手动安装此新版本的GDB将在默认情况下安装,/usr/local/bin/gdb中的二进制文件。

您知道如何在常规/usr/bin中安装它吗?要安装在/usr而不是/usr/local:./configure--prefix=/usral可选地,您可以将
-gdwarf-2
传递给编译器,以生成与gdb7.4兼容的调试符号。