Reputation: 29326
Say I have a variable, self.position
, how do I get Xcode to break whenever it changes its value (a number of methods could change it).
Upvotes: 23
Views: 17074
Reputation:
Set a symbolic breakpoint. Go to the Breakpoint Navigator, click the +, click "Add Symbolic Breakpoint." In the first field, type -[YourSubclassNameHere setPosition:]", add any other setting you'd like to, then click outside the dialog.
Upvotes: 8
Reputation: 14304
For conditional breaking:
For breaking on every occasion the value has changed:
If you want to see who invoked the setter - just look at the next line in the stack trace (viewDidLoad in my example):
Update:
Adding a watchpoint
(lldb)
prompt shows up in the consolewatchpoint set variable _position
(replace _position with an iVar you want to watch)watchpoint modify -c "_position < 0.5" 1
where the expression in quotes is the condition and the number at the end is the watchpoint number you noted in #3.Upvotes: 29
Reputation: 200
You could override the setter of position
to have a breakpoint when it sets the variable.
Upvotes: 2
Reputation: 2431
Well the simple way to do it is right clicking on the variable in the watch window and selecting the watch variable option. Xcode will then alert you when the value is changed.
Or you could have a look at Key-Value Observing.
Upvotes: 7