el reloj solo interrumpe en la escritura, el reloj le permite interrumpir en la lectura y el reloj le permite interrumpir en la lectura / escritura.
Puede establecer puntos de observación de lectura en ubicaciones de memoria:
gdb$ rwatch *0xfeedface
Hardware read watchpoint 2: *0xfeedface
pero una limitación se aplica a los comandos rwatch y awatch; no puedes usar variables gdb en expresiones:
gdb$ rwatch $ebx+0xec1a04f
Expression cannot be implemented with read/access watchpoint.
Entonces debes expandirlos tú mismo:
gdb$ print $ebx
$13 = 0x135700
gdb$ rwatch *0x135700+0xec1a04f
Hardware read watchpoint 3: *0x135700 + 0xec1a04f
gdb$ c
Hardware read watchpoint 3: *0x135700 + 0xec1a04f
Value = 0xec34daf
0x9527d6e7 in objc_msgSend ()
Editar: Ah, y por cierto. Necesita soporte de hardware o software . El software es obviamente mucho más lento. Para saber si su sistema operativo admite puntos de observación de hardware, puede ver la configuración del entorno can-use-hw-watchpoints .
gdb$ show can-use-hw-watchpoints
Debugger's willingness to use watchpoint hardware is 1.
watch -location mTextFormatted
.