94

特定の文字列の一致に達したときにデバッガーを中断できるようにしたいと考えています。例として、私はこのようなものを持っているかもしれません:

Foo myObj = [self gimmeObj];

myObjと呼ばれるプロパティがある可能性がありますname。デバッガーが割り当て時に停止するようにしたい

[myObj.name isEqualToString:@"Bar"];

Xcodeで条件付きブレークポイントを設定してそれを行うにはどうすればよいですか?

4

5 に答える 5

7

これが機能するかどうかはわかりませんが、そのコード行にブレークポイントを設定し、デバッガー コンソール (Cmd+Shift+R) を開いて、次のように入力してみてください。

condition N (int)[[myObj name] isEqualToString:@"Bar"]

ここで、N はブレークポイントの番号 (整数) に置き換えられます。

于 2009-06-12T19:38:38.187 に答える
2

セッターを使用してmyObj.nameを変更する場合は-[MyObjClass setName:]、デバッガーコンソールまたはXcodeの[実行]->[ブレークポイントの管理]->[シンボリックブレークポイントの追加]メニューからシンボリックブレークポイントを追加できます。そうでない場合(なぜですか?指定された初期化子またはdeallocを除いて、インスタンス変数を直接変更するべきではありません)、gdbでウォッチポイントを設定できます(デバッガーの実行後にXcodeのデバッガーコンソールを使用します)。このページではその方法を説明します。Xcodeがデバッガコンソールを使用せずにウォッチポイントを設定するためのUIを公開しているとは思いません。

于 2009-06-12T19:59:25.453 に答える