思路是利用trace指令替换目标断点地址的指令,单CPU执行到目标断点地址指令的时候触发一个
trace异常。在trace异常处理里面处理断点。
这样模拟方法优点是可以设置多个指令断点,不需要CPU额外的支持。
数据断点通常是在CPU流水线的memory access阶段实施监控,如果地址吻合则触发数据断点。
这个需要CPU硬件支持,不是所有CPU都支持。
更强大的当然是gdb server了。但是将gdb server移植到一个rtos,首先会撑大程序体积。其次就是投入产出比,和现有的调试手段相比运用gdb server可以提高多少效率还是个未知数O(∩_∩)O~
阅读(2075) | 评论(0) | 转发(0) |