在GDB远程调试中,monitor <verb>发送命令<verb>供远程GDB服务器执行。在这种特殊情况下,GDB服务器实际上是JLink为其JTAG调试器提供的服务器,用于调试运行在真实硬件上的嵌入式软件。这些命令广泛用于控制目标CPU,例如使用monitor reset重置它。
我正在运行一个使用clang/LLVM (使用libc++)编译的裸机可执行文件。因此,我更喜欢将LLDB与该可执行文件一起使用,希望对库类型和编译器生成的内部结构的漂亮打印提供更好的支持。
LLDB支持GDB-remote调试协议。但是如何向服务器发送等同于GDB的monitor命令呢?
发布于 2019-08-13 03:09:59
lldb可以使用以下命令将原始数据包发送到服务器:
(lldb) process plugin packet send它可以使用以下命令发送qRcmd命令:
(lldb) process plugin packet monitor我不记得gdb monitor命令发送了什么,但是您可以在gdb中打开数据包日志记录,运行该命令来查看它发送的内容,然后在lldb中使用适当的命令重播。
发布于 2020-02-29 20:40:57
这是在mailing list post中回答的。基本上,假设您想要发送reset halt命令,在GDB中,您可以这样说:
monitor reset halt在LLDB中,您可以使用以下命令执行相同的操作:
process plugin packet monitor reset halthttps://stackoverflow.com/questions/57451287
复制相似问题