GDB存根
概述
GDB特性提供了一个GDB远程串行协议(RSP)的实现,它允许您使用GDB远程调试Zephyr。
该协议支持不同的连接类型:串行、UDP/IP和TCP/IP。和风目前只支持串行设备通信。
GDB程序作为客户端,而Zephyr充当服务器。启用此功能后,Zephyr将在gdb_init()
启动gdbstub
服务并等待GDB连接后停止其执行。一旦建立了连接,就可以与西风同步交互。请注意,目前不可能向目标服务器异步发送命令。
功能
支持以下功能:
- 添加和删除断点
- 继续并执行目标
- 打印回溯
- 读取或写取通用寄存器
- 读取或写取内存
启用GDB Stub
可以使用CONFIG_GDBSTUB
选项启用GDB存根。
使用串行后端
可以使用CONFIG_GDBSTUB_SERIAL_BACKEND
选项启用GDB存根的串行后端。
由于串行后端利用UART设备来发送和接收GDB命令,
如果板上有备用的UART设备,将CONFIG_GDBSTUB_SERIAL_BACKEND_NAME
设置为备用的UART设备,以便打印()和日志消息不会打印到用于GDB的同一UART设备。
对于只有一个UART设备的电路板,如果它们同时使用相同的UART设备进行输出,则必须禁用printk()
和日志记录。与GDB相关的消息可能会与日志消息交织,这可能会产生意想