代码之家  ›  专栏  ›  技术社区  ›  Drew

在NetBeans中使用远程构建主机时,断点是如何工作的?

  •  0
  • Drew  · 技术社区  · 7 年前

    g++ , ld ,然后运行编译后的二进制文件并将标准输出转发给运行NetBeans的开发机器。

    我不明白的是:如果断点只存在于NetBeans中,那么构建机上的二进制文件如何知道何时何地启动/停止?构建主机只需要ssh访问和编译/链接工具链,但似乎以某种方式与NetBeans通信以进行调试。我的一位同事建议它使用 gdbserver

    2 回复  |  直到 7 年前
        1
  •  1
  •   Chris Stratton    7 年前

    使用(或可以配置为使用)不同的命令行工具链进行编译和调试的GUI IDE通常通过将每个必需的工具链程序作为子进程运行并通过标准流与之交互来实现。本质上,IDE将使用 gcc gdb 在终端窗口中运行时使用相同的文本界面。IDE使用其对源文件中的行的了解来配置中的断点 gdb公司 就像你用手操作它一样。

    因为 gdb公司 调试器和目标程序在同一台计算机上运行,没有 gdbserver 是必需的。

    对于目标系统来说太大, gdbserver 是一个小程序,通常为目标交叉编译并加载到目标上。这是一个紧凑的小代表,与主要代表对话 程序通过串行或网络连接在构建机器上运行,并代表gdb执行与处理器、内存和运行程序的原始交互。

    另一种可能性是 角色 相反,它的命令类似于 JTAG debug adapter 在较低级别与目标硬件交互。然而,在这种情况下,实现gdbserver协议的助手程序通常不称为“gdbserver”,而是具有实现特定的名称,例如 openocd

        2
  •  0
  •   0___________    7 年前

    gdb在目标机器上运行。只有与gdb(命令等)的通信通过网络传输到您的本地机器。如果需要了解更多信息,请阅读gdb文档/