Xcodeで変数の変更やメモリの変更を追跡する方法はありますか?私はVisual Studioのデータブレークポイントのような機能を探しています。Xcodeの変数またはメモリの変更を追跡していますか?
私のオブジェクトのビューフレームがどこで変更されているか知りたい。私はメンバ変数にブレークポイントを設定して実行したいと思います。それから、どこが変わったのか判断することができました。
Xcodeで変数の変更やメモリの変更を追跡する方法はありますか?私はVisual Studioのデータブレークポイントのような機能を探しています。Xcodeの変数またはメモリの変更を追跡していますか?
私のオブジェクトのビューフレームがどこで変更されているか知りたい。私はメンバ変数にブレークポイントを設定して実行したいと思います。それから、どこが変わったのか判断することができました。
Xcodeはデバッグ機能を実装するためにgdb
(またはlldb
ですが、それは別の話です)を使用しています。 gdb
には、ハードウェアウォッチポイントを設定する機能があり、Xcodeも同様に機能します。
Thisは、メモリエラーの一般的なデバッグに役立つページです。 Xcodeのデバッグコンソールウィンドウは実際にはgdb
シェルです。あなたが好きなようにコマンドを入力することができます。いつも役立つQuinn Taylorは、this関連する投稿でこれを行う方法を説明しています。
gdb
と直接対話しないようにするには、Xcodeのデバッグウィンドウで変数を右クリックし、[変数の監視]を選択します。変数の値が変更されると、Xcodeは警告を表示します。
はい。
[実行]メニューには、gdbのビジュアルフロントエンドを提供する「デバッガ」があります。
また、[ビルドと実行]ボタンの隣にブレークポイントボタンがあります。 [実行]> [ブレークポイントの管理]で、ブレークポイントをクリックしてブレークポイントを管理できます。
私は、これは彼が探しているのは何であるかわかりません。あなたは標準的なブレークポイントについて話していますが、メモリ内のある場所に格納されているデータが変更されたときに破ることについて話しています。ブレークポイントよりもウォッチポイントに似ています。 –
ええ、そういう "トリガー"があるかどうかはわかりません。しかし、デバッガと標準ブレークポイントの使用により、データの変化を見ることができます。おそらく、Visual Studioほど滑らかではありません。 – aqua
hardware watchpointsを使用できます。
あなたは(GDBプロンプトでタイプp &my_var
)を追跡する変数のアドレスを取得する必要があります。
0x12345678
のようなものが印刷されます。
gdbの場合:watch *(int *)0x12345678
です。 lldbで
:watch set expression (int *)0x12345678
(またはw s e (int *)0x12345678
)
これはあなたの変数はint
ある前提としています。このアドレスにハードウェアウォッチポイントが作成されます。
は、この情報がお役に立てば幸いです。
私はこのポストは古いですが、知っている場合には、あなたはまだ私はここに詳細な回答を掲載不思議に思っている:In XCode 6 how can you set a watchpoint without stopping execution?
詳細な回答をお待ちしております!私が試してみます! – SeniorLee
ウォッチウィンドウの変数を右クリックすることは決して考えられませんでした!今実際にそれがヒットすることを望むために);変数値を表示するだけで十分なropeyと思われます - ローカル変数が有効範囲外であることを伝えることは本当に役に立たないです。 –
@LaceySnr:私の答えをチェックしてください。私はXcodeの時計で同じ問題があります。だから私はgdbウォッチポイントを使用しています。 –