我在Ubuntu12.04上安装了gcc 4.8.1 (为此我不得不添加ppa ),现在gdb显示了以下消息:
无法找到动态链接器断点函数。GDB将无法为5个库调试共享库初始化器并跟踪显式加载的动态code.Could不加载共享库符号,例如/usr/lib/x86_64-linux-gnu/libstdc+.so.6。使用"info sharedlibrary“命令查看完整的列表。你需要"set solib搜索路径“还是"set sysroot"?
我做了谷歌,我发现这篇文章最能回答我的问题:http://www.fayewilliams.com/2013/01/31/gdb-unable-to-find-dynamic-linker-breakpoint-function/
然而,我仍然不知道到底该怎么做。有人能帮忙吗。太棒了!
发布于 2013-10-03 02:52:52
我也有同样的问题,并能够解决它。
我从这个PPA (https://launchpad.net/~ubuntu-toolchain-r/+archive/test)上安装了GCC的最后一个“稳定”版本(4.8.1),在我不得不处理调试问题之前,一切都很完美。您可以注意到,在这个PPA中,工具链没有为处理编译器升级提供GDB的更新版本。事实上,我没有发现任何提供GDB更新版本的PPA。
在我的例子中,我解决了这种情况,从它的网站(http://www.sourceware.org/gdb/)下载并安装了GDB (7.6)的最新稳定版本。这个版本的GDB能够解析符号并提供Gcc 4.8.1生成的二进制文件的所有必要信息,即使我使用的是新的c++11标准(使用-std=c++11标志编译的代码)。
考虑到手动安装这个新版本的GDB在默认情况下将安装/usr/local/bin/gdb中的二进制文件。
发布于 2013-10-02 10:38:31
Gdb通常随工具链一起提供。
您可能使用的是上一个工具链附带的gdb。使用
  which gdb来发现你使用的是哪个gdb。
要调试使用新编译器编译的程序,必须使用新的gdb。
https://stackoverflow.com/questions/19129706
复制相似问题