【问题标题】:Remote terminal in GDB windowGDB 窗口中的远程终端
【发布时间】:2015-02-18 17:20:05
【问题描述】:

我正在使用 GDB 调试远程目标:我启动 GDB,然后键入 target remote foo:1234。我还通过串行端口与目标通信(注意:GDB 不是通过此串行端口连接,而是通过 OpenOCD 通过单独的 JTAG 接口连接)。所以我打开了两个终端:一个使用 Minicom,一个使用 GDB。

当您在 GDB 中调试“正常”劣质时,其 stdinstdout 与 GDB (more info here) 位于同一 TTY 上。

有谁知道是否有可能为远程目标实现这一点 - 即让 GDB 连接到串行端口(以及 GDB 服务器),以便我可以从 GDB 会话中对目标进行 I/O?

【问题讨论】:

  • 这可能可能(毕竟所有组件都是开源的,因此可以修改)但是你确定它是可取的吗?对于传统的线模式阻塞终端 I/O,这似乎更有意义 - 如果在应用程序代码中更直接地处理端口,则在嵌入式系统中意义不大。如果您知道您的串行端口访问将通过一个一致的 API,该 API 提供类似终端的一次行功能,那么您可以创建一些集成。一般来说,统一输出可能要简单得多,但同步可能不太好。
  • Chris:假设您只在进程停止时与 GDB 交互,我认为应用程序没有必要只执行行模式 I/O。毕竟不是所有的非嵌入式应用程序都只做线模式 I/O,GDB 应该能够调试这样的系统。不过可能会有一些我没有想到的并发症。
  • 我已经进入了 GDB 邮件列表关于这个问题 (sourceware.org/ml/gdb/2015-02/msg00032.html) 并且 GDB 目前似乎没有这样做的设施。我会做一些思考,如果我能找到一个通用的解决方案,我一定会分享它。

标签: linux debugging serial-port gdb embedded


【解决方案1】:

目前似乎没有针对此问题的通用解决方案。有some discussion on the mailing list。克里斯·斯特拉顿(Chris Stratton)表示无论如何这可能是一个根本性的坏主意!如果我想出任何可能对其他人有用的东西,我一定会在这里更新。

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 2017-02-10
    • 2012-10-06
    • 2021-12-28
    • 1970-01-01
    • 2011-01-16
    • 2016-08-16
    • 2013-05-03
    相关资源
    最近更新 更多