xem chỉ nghỉ khi viết, rwatch cho phép bạn đọc và đọc cho phép bạn đọc / ghi.
Bạn có thể đặt các điểm quan sát đọc trên các vị trí bộ nhớ:
gdb$ rwatch *0xfeedface
Hardware read watchpoint 2: *0xfeedface
nhưng một giới hạn áp dụng cho các lệnh rwatch và awatch; bạn không thể sử dụng biến gdb trong biểu thức:
gdb$ rwatch $ebx+0xec1a04f
Expression cannot be implemented with read/access watchpoint.
Vì vậy, bạn phải tự mở rộng chúng:
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 ()
Chỉnh sửa: Ồ, và nhân tiện. Bạn cần hỗ trợ phần cứng hoặc phần mềm . Phần mềm rõ ràng là chậm hơn nhiều. Để tìm hiểu xem hệ điều hành của bạn có hỗ trợ các điểm giám sát phần cứng hay không, bạn có thể xem cài đặt môi trường có thể sử dụng hw-watchpoint .
gdb$ show can-use-hw-watchpoints
Debugger's willingness to use watchpoint hardware is 1.
watch -location mTextFormatted
.