在阅读本文档时,
我没有发现软件和硬件观察点之间的区别。我读到软件断点(不是观察点)用不正确的指令替换指令以触发中断(然后停止程序),并且硬件断点将指令的地址放在寄存器中并将其与每个指令进行比较执行的指令。
但是,我在观察点的文档中读到“GDB 通过单步执行程序并每次测试变量的值来执行软件观察点”,这基本上是我理解的硬件观察点的定义。
有人对软件和硬件观察点之间的区别有更好的理解吗?
c gdb breakpoints watchpoint
breakpoints ×1
c ×1
gdb ×1
watchpoint ×1