web-dev-qa-db-ja.com

Xcodeで変数またはメモリの変更を追跡しますか?

Xcodeで変数の変更またはメモリの変更を追跡する方法はありますか? VisualStudioのデータブレークポイントのような機能を探しています。

オブジェクトのビューフレームがどこで変更されているのか知りたいのですが。メンバー変数にブレークポイントを設定して実行したい。それから私はそれがどこで変更されたかを決定することができました。

18
SeniorLee

Xcodeはgdb(またはlldbですが、それは別の話です)を使用してデバッグ機能を実装します。 gdbにはハードウェアウォッチポイントを設定する機能があるため、Xcodeも同様です。

This は、メモリエラーの一般的なデバッグに役立つページです。 Xcodeのデバッグコンソールウィンドウは、実際には単なるgdbシェルであり、コマンドを自由に入力できます。常に役立つQuinnTaylorが、その方法を this 関連の投稿で説明しています。

gdbと直接対話することを避けたい場合は、Xcodeのデバッグウィンドウで変数を右クリックして、[変数の監視]を選択できます。 Xcodeは、変数の値が変更されるたびに警告を発します。

20
Sedate Alien

ハードウェアウォッチポイント を使用できます。


追跡する変数のアドレスを取得する必要があります(gdbプロンプトで_p &my_var_と入力します)。

_0x12345678_のような何かを出力します。

  • Gdbの場合:watch *(int *)0x12345678と入力します。

  • Lldbの場合:watch set expression (int *)0x12345678(またはw s e (int *)0x12345678

これは、変数がintであることを前提としています。このアドレスにハードウェアウォッチポイントが作成されます。


お役に立てれば。

10
Kevin MOLCARD

はい。

[実行]メニューの下に、gdbに視覚的なフロントエンドを提供する「デバッガー」があります。

また、[ビルドして実行]ボタンの横にブレークポイントボタンがあります。それをクリックして、[実行]> [ブレークポイントの管理]でブレークポイントを管理できます。

1
aqua

この投稿が古いことは知っていますが、それでも疑問がある場合は、ここに詳細な回答を投稿しました: XCode 6では、実行を停止せずにウォッチポイントを設定するにはどうすればよいですか?

0
DrMad