调试 – 硬件观察点是否仅适用于某些内存地址?

我有gdb 7.3和支持硬件观察点的设备.

我键入了这样的结果命令:

Breakpoint 1, 0x000db808 in ?? ()
(gdb) info break     
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x000db808 
    breakpoint already hit 1 time
(gdb) watch *0x15588a
Watchpoint 2: *0x15588a
(gdb) watch *0x1557f8
Hardware watchpoint 3: *0x1557f8
(gdb) info break
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   0x000db808 
    breakpoint already hit 1 time
2       watchpoint     keep y              *0x15588a
3       hw watchpoint  keep y              *0x1557f8
(gdb)

为什么第一个命令后没有接受硬件观察点?
怎么了?

最佳答案

Why wasn’t hardware watchpoint accepted after the first command?

您没有告诉我们您使用的处理器.

我猜你的处理器不支持硬件观察点,因为地址没有在4字节边界上对齐.

如果您的硬件不支持此类观察点,GDB无法在地址上设置硬件观察点.

转载注明原文:调试 – 硬件观察点是否仅适用于某些内存地址? - 代码日志