Section 7/161 menit

7. Watchpoints

7. Watchpoints

Watchpoint adalah breakpoint yang dipicu bukan oleh eksekusi kode tertentu, melainkan oleh perubahan nilai memori. Sangat berguna untuk menemukan "siapa yang mengubah nilai ini?".

swift
# Berhenti ketika variabel diubah (read + write)
(lldb) watchpoint set variable myVariable

# Berhenti hanya saat ditulis
(lldb) watchpoint set variable myVariable --watch write

# Berhenti hanya saat dibaca
(lldb) watchpoint set variable myVariable --watch read

# Watchpoint pada alamat memori langsung
(lldb) watchpoint set expression -- &myObject.count

# Lihat semua watchpoints
(lldb) watchpoint list
(lldb) w l

# Hapus watchpoint
(lldb) watchpoint delete 1

# Watchpoint dengan kondisi
(lldb) watchpoint modify 1 --condition "myVariable > 100"

Keterbatasan Watchpoint

Hardware watchpoints terbatas jumlahnya (biasanya 4 di ARM). Jika lebih dari 4, LLDB akan menggunakan software watchpoints yang jauh lebih lambat.

swift
# Cek berapa watchpoints yang bisa digunakan
(lldb) watchpoint list
# Perhatikan: "4 hardware watchpoints available" atau sejenisnya