如何使用 Qt Creator 中的 GDB 进行远程调试?

2023-12-22

我正在开发一个嵌入式 Linux 应用程序,我想使用 GDB 来调试它。问题是,虽然 Kit 配置看起来不错(调试器选项正确指向与设备的 GCC 对应的 GDB - 设备是 Linux ARM),但当我要求 Qt Creator 在调试模式下运行时,它会在“应用程序输出”:

sh: gdbserver: not found

这看起来很奇怪,因为我很伤心,配置很好,并且 Qt Creator 在启动调试模式之前的任何时刻都没有报告任何错误。

我在网上做了一些研究,找出使用 GDB 从 Qt Creator 中调试嵌入式 Linux 应用程序的确切步骤(使用断点等),最接近我得到的答案的是这篇评论 http://qt-project.org/forums/viewthread/23370作者:托拜厄斯·饥饿:

您需要在主板上安装 ssh 和 gdbserver 这个工作。然后你需要在 [qt-project.org] 中设置你的板 创造者。然后你需要使用以下命令设置一个工具包 [qt-project.org] 这个设备。

我想,这些步骤并不清楚。

  • 首先,如果套件应该指向我的本地 GDB,为什么我需要在设备内有一个 GDB?
  • 或者不应该?
  • 我应该把 GDB 放在哪里呢?
  • 我怎么知道我是否有这个ssh在我的设备上?
  • 如果没有,我该如何安装?
  • 所有其他提到的步骤都已完成,但与位于我的桌面 Ubuntu 上的 GDB 相关。如果我执行上述步骤,我应该改变什么吗?

当然,这本手册是我的 Tobias 完成的还是我需要做其他事情才能使其发挥作用?


你需要gdb and ssh在你的 Ubuntu 上和gdbserver and sshd在您的设备上:实际上,当您使用 QtCreator 在远程设备上部署项目时,它会利用ssh用于将文件复制到目标,然后启动gdbserver在设备上(附加到您要调试的可执行文件),然后启动gdb在你的 Ubuntu 上连接到正在运行的gdbserver在设备上。

因此,您需要所有这些才能使事情正常进行。

ssh and gdb可以简单地通过以下方式安装在你的 Ubuntu 上apt-get。相反安装sshd and gdbserver你的主板上是特定于平台的:可能有些主板已经在其标准系统映像中包含它们,或者在某些情况下可能由你来安装它们......如果你的主板上的 Linux 发行版有一些包管理器那么你可能会尝试使用它......在最坏的情况下,你将不得不为你的主板自行编译它们并手动安装它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Qt Creator 中的 GDB 进行远程调试? 的相关文章

  • 使用 CMake 时出现 Qt moc 错误

    我正在尝试编写一个 OpenCV 应用程序 使用 Qt 创建 GUI 并使用 CMake 生成 makefile 我遇到的问题是 当我尝试执行make命令 我收到错误 该文件是使用 5 2 1 中的 moc 生成的 它不能与此版本的 Qt
  • Qt:使用 QObject::connect 指定多种连接类型

    我想知道是否可以指定多种连接类型 例如 我希望我的连接类型是排队连接和唯一连接 是否可以在一份声明中具体说明这一点 QObject connect ptrSender SIGNAL ptrReceiver SLOT Queued and u
  • mscorwks.dll 中的 System.UnauthorizedAccessException 导致应用程序池崩溃

    我的应用程序池在 IIS 6 0 MS 调试诊断每次都指向 kernel32 dll 中不断随机崩溃 入口点始终为 mscorwks CreateApplicationContext bbef 结果始终为 System Unauthoriz
  • 如何在 Qt4 OpenGL 应用程序中启用 HiDPI (Retina) 支持?

    我正在使用带有 QGraphicsView 的 QGraphicsScene 如中所述这个文件 https doc qt io archives qq qq26 openglcanvas html 我打算最终将 Qt 小部件覆盖在我的 Op
  • 调试器:如何在故障转储中获取“Mutex Owned”或“Mutex Free”信息?

    我不知道我没有做什么 但我根本无法让自己的调试器保存正在调试的应用程序的 Mutex Owned 或 Mutex Free 信息 如果我按如下方式调用它 CDB 就可以正常工作 cdb pn test exe c dump f ma u t
  • 用Qt制作无边框窗口

    我是 Qt C 新手 我下载了最新的 Windows 版本 做了一些教程 非常棒 我看到了 Qt 框架具有的一些样式选项 而且它很棒 但现在我需要构建我的应用程序 其主窗口 形式 是用没有矩形边框 无边框 的图像设计 蒙皮的 我怎样才能用Q
  • Qt 要包含哪些标头?

    使用 Qt 使用 C 进行编程时 我应该包含哪些内容 仅包含 2 个 include
  • 找不到 PySide SVG 图像格式?

    我正在使用 Eclipse 的 PyDev 插件与 Qt 集成 我安装了 PySide 但在使用 SVG 图像格式时遇到问题 我知道当我运行我的应用程序时 格式位于C Python27 Lib site packages PySide pl
  • 如何使用 C++ 更新 QML 文本

    我有一个小问题 有人可以告诉我如何从 C 更新 qml 文本吗 我有一个使用线程的示例 但我不想应用此方法 因为我不知道如何设置 run 函数中的参数 要完全理解我 这里是我的代码 在启动线程时的主函数中 我想放置自定义文本或具有文本的字符
  • 超越堆栈采样:C++ 分析器

    黑客的故事 日期是 2010 年 2 月 12 日 圣诞节前的日子已经过去了 作为一名 Windows 程序员 我几乎遇到了一个主要障碍 我一直在使用 AQTime 我尝试过 sleepy shiny very sleepy 就在我们说话的
  • iPhone崩溃日志:未能及时恢复

    我正在查看崩溃日志并注意到 未能及时恢复 Application Specific Information com myApp MyApp failed to resume in time elapsed total CPU time se
  • 更改 QGraphicsView 中的光标

    我正在尝试更改 a 的光标QGraphicsView而ScrollHandDrag已开启 但似乎不起作用 如果禁用 我可以更改光标ScrollHandDrag但不是在它处于活动状态时 我不知道我可能做错了什么 下面是重现该问题的代码的一部分
  • 当 SQL 包含变量时在 pgAdmin 中调试 SQL

    在 SQL Server 中 我可以从应用程序中复制 sql 代码并将其粘贴到 SSMS 中 声明并分配 sql 中存在的变量并运行 是的 很棒的调试场景 例如 请注意 我很生疏 语法可能不正确 declare x as varchar 1
  • Row 和 RowLayout 有什么区别?

    这按预期工作Row 但不与RowLayout 为什么 两者有什么区别 ApplicationWindow title Testing width 640 height 480 RowLayout Row anchors fill paren
  • 如何在qt中使用QImage和QPainter将两张图像合并为一张? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 您好 我正在开发一个 blackberry10 应用程序 在应用程序内 我有两个图像 我只需要将这两个图像合并为一个图像 Cascades
  • 追踪 int[] 的分配情况

    当查看我的remote通过 JMX 在 JVisualVM 中的应用程序中 我看到空闲时内存使用呈锯齿状 进行堆转储并使用 JVisualVM 进行分析 我发现很大一部分内存位于几个大的内存中int 没有引用的数组 通过比较堆转储 我可以看
  • Visual Studio 如何在调试期间显示 System.Double?

    尝试调试以下简单程序 并将鼠标悬停在x在每个步骤中 或 添加监视 x管他呢 using System using System Globalization static class Program static double x stati
  • QTextEdit:仅当滚动条位于底部时自动向下滚动

    有一个 QTextEdit 显示相当多的文本 它不可编辑 假设我想在开头阅读一些内容 向上滚动 但随后添加了一个新行 并且滚动条自动转到底部 我在使用各种程序时遇到类似的问题 无论它们是用什么语言编写的 如何处理这个问题 当向文本添加新行时
  • 如何以编程方式在 c 文件中的每个函数中添加打印语句?

    我正在研究嵌入式代码 目前完全依赖于函数内部的打印来确定执行流程 没有可用的堆栈跟踪功能 经常发生这样的情况 我放置了一堆打印语句 构建了我的代码并运行它 却发现我也应该将打印放在其他十几个地方 然后再次开始长达一个小时的过程 有没有一种简
  • gdb 的“不是来自终端的输入”消息可以被抑制吗?

    我有一个gdb以命令结尾的脚本quit 当我像这样运行脚本时 gdb x foo gdb target program 最终的输出总是 Quit anyway y or n answered Y input not from termina

随机推荐

  • Django、uWSGI 和 nginx:进程“无故”死亡

    我正在使用 uWSGI 和 nginx 运行两个并行的 Django 应用程序 其中一个负载稍大一些 两者都非常小 大约每 24 小时就会死机一次 并显示以下消息 pid 16358 app 0 req 1000 1000 127 0 0
  • 使用 Webpack 替换/别名文件

    我正在尝试在我的项目中使用一个非常新的第三方模块 我使用它安装了npm 该模块显然是在具有不区分大小写文件系统的操作系统上开发的 因此它需要一个文件injectable js而实际的文件名是Injectable js 这会破坏捆绑过程 该模
  • angular2 router.navigate 内部 auth0 回调

    在 auth0lock 的回调中调用 router navigate 后 我在渲染模板时遇到问题 登录组件 ts import Component Inject from angular2 core import Router Compon
  • 如何冻结表格报告中的第一列?

    我有一个包含 70 列的表格报告 我的要求是在水平滚动时冻结第一列 我已尝试检查 Tablix 属性中的行标题 但仍然不起作用 如何冻结第一列 以下是在 SSRS 中冻结列 行的步骤 步骤1 去Groupings窗格底部并选择高级模式 步骤
  • 单线程执行任务,无需排队进一步的请求

    我需要异步执行任务 同时丢弃任何进一步的请求 直到任务完成 同步方法只是将任务排队并且不会跳过 我最初想使用 SingleThreadExecutor 但它也会对任务进行排队 然后 我查看了 ThreadPoolExecutor 但它读取队
  • 阻止访问 JavaScript 文件

    假设我有一个 JavaScript 文件 使用 htaccess 有没有办法让用户无法查看 JavaScript 文件内部 RewriteEngine on RewriteCond HTTP REFERER http your domain
  • Hibernate 3.5.x:NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval

    我正在尝试升级到 Hibernate 3 5 3 FINAL 运行单元测试时 我现在收到以下异常 java lang NoSuchMethodError javax persistence OneToMany orphanRemoval Z
  • java中如何将json字符串放入列表中

    我得到了一个JSON array像字符串一样 id ca Primary Diagnosis Dt field ca Primary Diagnosis Dt type date input text operator not equal
  • 用户控件中的 INotifyPropertyChanged

    我有一个从 TextBox 控件继承的自定义控件 我想实施INotifyPropertyChanged我的自定义控件中的界面 public class CustomTextBox TextBox INotifyPropertyChanged
  • 我应该在 Java Web 应用程序中使用安全管理器吗?

    使用运行应用程序服务器进程的用户的权限来保护 Java Web 应用程序是否足够 或者将 SecurityManager 与合适的策略文件一起使用是否合理 我曾经做过前者 而不是后者 但一些客户希望我们也使用 SecurityManager
  • 在 Xamarin Android 中启用 Multi-Dex 后出错

    在创建 Xamarin Android 应用程序时 添加对 Infragistics Chart 控件和 Google Play 服务的引用后 我们必须启用 启用 Multi Dex 属性true 因为应用程序达到了 65K 的 dex 方
  • AngularJS:避免使用 $location 进行 url 编码

    我注意到 当我将一个数组参数传递给 location search 时 它的编码如下例所示 location path somePath search ids 1 2 3 becomes somePath ds 5B 5D 1 ds 5B
  • CNCopyCurrentNetworkInfo() 返回错误数据

    Apple 在 OS 4 1 中引入了 CNCopyCurrentNetworkInfo 函数 https developer apple com library ios documentation SystemConfiguration
  • Rails 中的匹配和路线

    我生成了一个控制器并更改了路线 但打开链接会在我的本地服务器上产生错误 生成控制器和路线 rails generate controller StaticPages home about team contact 更改路线 rb MyApp
  • 如何在 ssrs 的 IIF 表达式中使用多个条件(使用 AND)

    我想隐藏 SSRS 报告中数量为零的行 有期初库存 总发货 转出 销售数量 库存调整 期末库存等多个数量栏 我正在使用以下表达式来完成此任务 IIF Fields OpeningStock Value 0 AND Fields GrossD
  • 如何使用 Ruby 一步初始化一个数组?

    我这样初始化一个数组 array Array new array lt lt 1 lt lt 2 lt lt 3 是否可以一步完成 如果是这样 怎么办 您可以使用数组文字 array 1 2 3 您还可以使用范围 array 1 3 to
  • 重构安全 ArgumentException 的 Lambda 表达式

    Update 从 C 6 开始这不再是问题 C 6 引入了nameof https stackoverflow com questions 11063502 getting names of local variables and para
  • 为我的所有表单设置相同的图标

    有什么办法可以为我的所有表单设置相同的图标 而不必一一更改 就像你设置时一样GlobalAssemblyInfo适用于解决方案中的所有项目 在项目属性 gt 应用程序 gt 图标和清单 gt 中浏览找到 ico 文件并将其添加到此处 在构造
  • React-Native 中的线性渐变

    我有一个组件 我想要在 React Native 中从右下到左上的线性渐变 我尝试使用 react native 线性渐变 但它不起作用 成分 渲染返回 return
  • 如何使用 Qt Creator 中的 GDB 进行远程调试?

    我正在开发一个嵌入式 Linux 应用程序 我想使用 GDB 来调试它 问题是 虽然 Kit 配置看起来不错 调试器选项正确指向与设备的 GCC 对应的 GDB 设备是 Linux ARM 但当我要求 Qt Creator 在调试模式下运行