我无法使用windbg设置4字节读/写访问硬件断点。
0:000> dd 02e80dcf
02e80dcf 13121110 17161514 1a191800 1e1d1c1b
02e80ddf 011c171f c7be7df1 00000066 4e454900
实际上,我必须检查何时值0x13121110(位于地址0x02e80dcf)被程序更改/覆盖。
因此,当我尝试设置一个4字节写访问硬件断点@ 0x02e80dcf时,我得到数据断点必须对齐错误。
0:000> ba w 4 02e80dcf
Data breakpoint must be aligned
^ Syntax error in 'ba w 4 02e80dcf'
0:000> ba r 4 02e80dcf
Data breakpoint must be aligned
^ Syntax error in 'ba r 4 02e80dcf'
0:000> ba w 1 02e80dcf
breakpoint 0 redefined
我可以在该地址处设置1个字节的写访问断点,但是当指针@地址0x02e80dcf被覆盖时,它不会被触发。
而且,如果有人可以提出其他任何方法来检测地址被覆盖的内容,则将非常有帮助。
注意:我遇到的特定程序问题。我可以在相同的调试环境中设置4字节硬件断点。
地址必须在4字节边界上对齐(对于64位系统,必须更大)。
任何以0xf结尾的十六进制地址均未对齐4字节边界。
WinDbg可能会限制数据断点与4或8个字节边界对齐。许多人需要使用条件中断,以便仅检查一个字节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句