Xcodeで変数の変更またはメモリの変更を追跡する方法はありますか? VisualStudioのデータブレークポイントのような機能を探しています。
オブジェクトのビューフレームがどこで変更されているのか知りたいのですが。メンバー変数にブレークポイントを設定して実行したい。それから私はそれがどこで変更されたかを決定することができました。
Xcodeはgdb
(またはlldb
ですが、それは別の話です)を使用してデバッグ機能を実装します。 gdb
にはハードウェアウォッチポイントを設定する機能があるため、Xcodeも同様です。
This は、メモリエラーの一般的なデバッグに役立つページです。 Xcodeのデバッグコンソールウィンドウは、実際には単なるgdb
シェルであり、コマンドを自由に入力できます。常に役立つQuinnTaylorが、その方法を this 関連の投稿で説明しています。
gdb
と直接対話することを避けたい場合は、Xcodeのデバッグウィンドウで変数を右クリックして、[変数の監視]を選択できます。 Xcodeは、変数の値が変更されるたびに警告を発します。
ハードウェアウォッチポイント を使用できます。
追跡する変数のアドレスを取得する必要があります(gdbプロンプトで_p &my_var
_と入力します)。
_0x12345678
_のような何かを出力します。
Gdbの場合:watch *(int *)0x12345678
と入力します。
Lldbの場合:watch set expression (int *)0x12345678
(またはw s e (int *)0x12345678
)
これは、変数がint
であることを前提としています。このアドレスにハードウェアウォッチポイントが作成されます。
お役に立てれば。
はい。
[実行]メニューの下に、gdbに視覚的なフロントエンドを提供する「デバッガー」があります。
また、[ビルドして実行]ボタンの横にブレークポイントボタンがあります。それをクリックして、[実行]> [ブレークポイントの管理]でブレークポイントを管理できます。
この投稿が古いことは知っていますが、それでも疑問がある場合は、ここに詳細な回答を投稿しました: XCode 6では、実行を停止せずにウォッチポイントを設定するにはどうすればよいですか?