watch в gdb
(gdb) print fConst
$40 = (double*) 0cf6260
(gdb) print &fConst
$20 = (double**) 0xb960578
(gdb) awatch *0cf6260
(gdb) awatch *0xb960578
gdb-6.4/gdb/breakpoint.c
действительно интересно как. Может заменяют на int3 все mov на этот адрес?
на x86 есть hardware watchpoints, которые gdb и юзает: пишешь в спецальные регистры адрес, и срабатывает breakpoint при обращении к этой ячейки памяти.
будет ли gdb ловить модификацию переменной char, которая находится в union с int, если будет модифицироваться int
с помощью ptrace(2) обеспечивается доступ к отладочным регистрам DRx процессора в контексте исполняемого процесса
Оставить комментарий
sergey_m
Просветите, каков механизм действия watch, когда я ловлю изменения ячейки памяти?