C ++ on Ubuntu 12.04 gcc 4.8.1 gdb 7.6.1。我仍然得到gdb错误:无法找到动态链接器断点功能

时间:2013-10-08 19:02:21

标签: gcc gdb

我正在使用Qt Creator 2.8.1 IDE在Ubuntu 12.04上开发C ++应用程序。我最近安装了gcc 4.8.1和gdb 7.6.1 - 两者都是最新的。自从我安装了新的gcc 4.8.1后,我开始从gdb收到此错误消息,将gdb升级到最新的7.6.1并没有解决问题。

更具体一点:当我从命令行运行gdb 7.6.1时,我没有收到错误消息。当我从Qt Creator环境运行gdb 7.6.1时,在调试我在安装gcc 4.8.1之前添加到Qt Creator的“旧”应用程序时,我没有收到消息。当我调试安装新gcc 4.8.1后添加的“新”应用程序时,我从Qt Creator环境运行gdb 7.6.1时收到错误消息。

这听起来像Qt Creator的一个问题,它从系统中提取环境变量。不幸的是,没有人在Qt Creator论坛上回答我的问题。我找到的最接近的解决方案是在这个博客中,但我不明白作者的意思是“你可以将gdb指向复制文件系统”。 http://www.fayewilliams.com/2013/01/31/gdb-unable-to-find-dynamic-linker-breakpoint-function/

编辑:我相信我只安装了一个版本的gcc和一个版本的gdb。

感谢您的帮助,谢谢。

P.S。这是错误消息: 无法找到动态链接器断点功能。 GDB将无法调试共享库初始化程序 并跟踪显式加载的动态代码。不能加载5个库的共享库符号,例如/usr/lib/x86_64-linux-gnu/libstdc++.so.6。 使用“info sharedlibrary”命令查看完整列表。 你需要“set solib-search-path”或“set sysroot”吗?

1 个答案:

答案 0 :(得分:1)

post you reference讨论了您在进行远程调试时所描述的问题(主要是在嵌入式系统上)。我自己遇到了这个问题,并按照下面的描述对其进行了分类。

在QtCreator中,转到选项 - > 构建&运行 - > 套件,选择您正在使用的套件并填写 sysroot 值。

enter image description here

在我的情况下,我需要将远程调试器指向目标文件系统的本地副本。如果您在桌面上进行本地调试,则问题更加困惑,您可以尝试将其设置为 /