特定の文字列の一致に達したときにデバッガーを中断できるようにしたいと考えています。例として、私はこのようなものを持っているかもしれません:
Foo myObj = [self gimmeObj];
myObj
と呼ばれるプロパティがある可能性がありますname
。デバッガーが割り当て時に停止するようにしたい
[myObj.name isEqualToString:@"Bar"];
Xcodeで条件付きブレークポイントを設定してそれを行うにはどうすればよいですか?
特定の文字列の一致に達したときにデバッガーを中断できるようにしたいと考えています。例として、私はこのようなものを持っているかもしれません:
Foo myObj = [self gimmeObj];
myObj
と呼ばれるプロパティがある可能性がありますname
。デバッガーが割り当て時に停止するようにしたい
[myObj.name isEqualToString:@"Bar"];
Xcodeで条件付きブレークポイントを設定してそれを行うにはどうすればよいですか?
これが機能するかどうかはわかりませんが、そのコード行にブレークポイントを設定し、デバッガー コンソール (Cmd+Shift+R) を開いて、次のように入力してみてください。
condition N (int)[[myObj name] isEqualToString:@"Bar"]
ここで、N はブレークポイントの番号 (整数) に置き換えられます。
セッターを使用してmyObj.nameを変更する場合は-[MyObjClass setName:]
、デバッガーコンソールまたはXcodeの[実行]->[ブレークポイントの管理]->[シンボリックブレークポイントの追加]メニューからシンボリックブレークポイントを追加できます。そうでない場合(なぜですか?指定された初期化子またはdeallocを除いて、インスタンス変数を直接変更するべきではありません)、gdbでウォッチポイントを設定できます(デバッガーの実行後にXcodeのデバッガーコンソールを使用します)。このページではその方法を説明します。Xcodeがデバッガコンソールを使用せずにウォッチポイントを設定するためのUIを公開しているとは思いません。