Sve*_*ven 3 linux gdb breakpoints watchpoint
watch varname在GDB中设置第一个(也是唯一可能的)硬件观察点之后,无法通过Delete删除它。
即使我刚刚退出GDB,该监视点似乎也已启用,直到下次重新启动为止。当我尝试在GDB重新启动后设置另一个硬件观察点时,日志中会出现一条内核消息,告诉我所有硬件观察点已被使用。似乎这与设置GDB硬件观察点/如何设置软件观察点中的问题相同,但是由于我需要硬件观察点,因此该解决方案不适用。
是否有工具或系统调用来删除此(或所有)硬件监视点?CPU是Core i5,Linux内核是Ubuntu 11.10(Oneiric Ocelot)的3.0.0-17版本。
使用观察点(有时称为数据断点)。它可以将其作为普通断点进行处理,如下所示:
(gdb) info watchpoints
Num Type Disp Enb Address What
2 acc watchpoint keep y x
(gdb) delete 2
(gdb) info watchpoints
No watchpoints.
(gdb)
Run Code Online (Sandbox Code Playgroud)
一个很好的参考是设置观察点。
通过 gdb 中的 watch varname 设置第一个(也是唯一可能的)硬件观察点后,无法通过删除将其删除。
上述说法是错误的。是什么让你断定这是真的?
是否有工具或系统调用可以删除此(或所有)硬件观察点?
不需要这样的工具。只需退出 GDB,所有断点和观察点都会消失。或者执行(gdb) delete(不指定断点),并确认您要删除全部。
| 归档时间: |
|
| 查看次数: |
15469 次 |
| 最近记录: |