像gdb这样的调试器如何通过JTAG设置断点?
我正在用gdb进行调试。 我想知道gdb如何在内部工作,通过JTAG在嵌入式处理器上设置一个brekpoint。
它可以编程一个硬件断点寄存器,或者通过用一个会导致异常的指令替换断点处的指令来放置一个软件断点。
每个处理器都有所不同,您必须查找特定处理器的jtag调试器详细信息。 不仅仅是处理器家族,而是特定的处理器 数据表/用户指南(如果有的话)通常可以从芯片供应商或核心供应商获得,具体取决于产品。
我曾经几次将GDB与JTAG单元一起使用,GDB通过使用处理JTAG细节的gdbserver
程序通过JTAG进行通信。 例如,使用OpenOCD JTAG单元:http://openocd.sourceforge.net/doc/html/GDB-and-OpenOCD.html
这基本上意味着GDB对JTAG单元不了解太多 - 它依赖于gdbserver
接口,然后该服务器随即执行所需的任何操作来执行GDB请求的背景。
上一篇: How does a debugger like gdb work to set a breakpoint through JTAG?