【问题标题】:What is the LLDB equivalent of GDB's `monitor` commands (e.g. `monitor reset`)?GDB 的 `monitor` 命令(例如 `monitor reset`)的 LLDB 等价物是什么?
【发布时间】:2019-12-18 10:46:12
【问题描述】:

在 GDB 远程调试中,monitor <verb> 发送命令<verb> 由远程 GDB 服务器执行。在这种特殊情况下,GDB 服务器实际上是 JLink 为其 JTAG 调试器提供的服务器,用于调试在真实硬件上运行的嵌入式软件。这些命令广泛用于控制目标 CPU,例如使用monitor reset 重置它。

我正在运行使用 clang/LLVM(使用 libc++)编译的裸机可执行文件。因此,我更愿意将 LLDB 与该可执行文件一起使用,希望能够更好地支持库类型和编译器生成的内部结构的漂亮打印。

LLDB 确实支持 GDB 远程调试协议。但是我如何将相当于 GDB 的 monitor 命令发送到服务器呢?

【问题讨论】:

    标签: gdb remote-debugging lldb bare-metal gdbserver


    【解决方案1】:

    这是在mailing list post 中回答的。基本上,假设你想发送reset halt 命令,在 GDB 中你会说:

    monitor reset halt
    

    在 LLDB 中,您可以这样做:

    process plugin packet monitor reset halt
    

    【讨论】:

      【解决方案2】:

      lldb 可以使用以下方式向服务器发送原始数据包:

      (lldb) process plugin packet send
      

      它可以使用以下方式发送 qRcmd 命令:

      (lldb) process plugin packet monitor
      

      我不记得 gdb monitor 命令发送了什么,但您可以在 gdb 中打开数据包日志记录,运行该命令以查看它发送的内容,然后在 lldb 中使用适当的命令重播。

      【讨论】:

        猜你喜欢
        • 2019-07-19
        • 2016-01-30
        • 2013-02-02
        • 2017-02-10
        • 2021-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        相关资源
        最近更新 更多