1

我正在使用 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 的“旧”应用程序时,我没有收到消息。当我从 Qt Creator 环境运行 gdb 7.6.1 时,当我调试安装新 gcc 4.8.1 后添加的“新”应用程序时,我确实收到了错误消息。

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

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

我会很感激任何帮助,谢谢。

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

4

1 回答 1

1

您引用的帖子讨论了您在进行远程调试时描述的问题(主要是在嵌入式系统上)。我自己也遇到过这个问题,并按如下所述对其进行了排序。

在 QtCreator 中,转到Options -> Build & Run -> Kits,选择您正在使用的套件并填写sysroot值。

在此处输入图像描述

就我而言,我需要将远程调试器指向目标文件系统的本地副本。如果您在桌面上进行本地调试,问题会更加复杂,您可以尝试将其设置为/

于 2014-01-10T15:49:05.003 回答