診断を使用してアプリケーションの実行
あなたのプロダクト開発のテストとデバッグ相の間、有効になっている様々なメモリ管理診断およびログオプションを使用してアプリケーションを実行するためのスキームを構成します。スキームは、実行時診断ツールから選択でき、診断ペインでの実行アクションがあります。
手順
- スキームのツールバーメニューからスキームを選択します。
- 同じメニューから、[スキームの編集(Edit Scheme)] を選択し、スキームのダイアログを表示します。
- 左の列で、[実行(Run)] を選択します。
- 実行時診断を指定するには、[診断(Diagnostics)] タブをクリックします。
- [閉じる(Close)] をクリックします。
- [実行(Run)] ボタンをクリックするか、[プロダクト(Product)] > [実行(Run)] を選択します。
注意: 診断ツールはまた、テストのアクションのためにも利用可能なオプションです。
Xcode で使用したいツールを選択します。アドレス健全化 (下記参照) 以外では、デバッグ領域コンソールやレポートナビゲータでデバッグログにこれらのツールからの出力を表示することができます。
いくつかの診断ツールは、他のものと組み合わせて使用できます。別のオプションがは、オプションの組み合わせを選択するのに役立つように選択されるように[診断(Diagnostics)] ペインで使用可能なオプションは、有効/無効にされます。例えば、アドレス健全化を有効にすると、他の互換性のないツールは無効になり、選択できません。
メモリ管理オプション:
- Malloc の落書きを有効にする。 0xAA で割り当てられたメモリを埋め、0x55 でメモリを割り当て解除します。
- Malloc のガードエッジを有効にする。 大気な割り当ての前と後にガードページを追加します。
- ガードの Malloc を有効にする。 バッファオーバーランや使用後自由化などのような一般的なメモリの問題をキャッチするため libgmalloc を使用します。
- ゾンビオブジェクトを有効にする。 使用しようとする試みをトラップする"ゾンビ" オブジェクトと割り当て解除したオブジェクトを交換してください。ゾンビオブジェクトにメッセージを送信すると、実行時はエラーとクラッシュをログに記録します。ゾンビ検出器をトリガする呼び出しの連鎖を表示するには、バックトレースで見ることができます。
実行時健全化:
- アドレス健全化を有効にする。 あなたのアプリを停止し、デバッガでメモリ破損が発生したときの場所を表示します。トリガされた時に Xcode のデバッガと連携する、アドレス健全化は、追跡して他の方法でとらえられない原因のメモリの問題を見つけ、解決するのに役立ちます。
このオプションを有効にすると、次回に再コンパイル用にアプリを実行すると、デバッグ用に実行します。
ログインオプション:
- 分散オブジェクト。 分散オブジェクト (NSConnection、NSInvocation、NSDistantObject、 および NSConcretePortCoder) のログ記録を有効にします。
- Malloc スタック。 メモリの割り当てと割り当て解放のスタックログの記録。
- 動的 API 使用をログに記録。 ダイナミックリンカ API 呼び出しをログに記録 (例えば、dlopen)。
- ライブラリのロードをログに記録。 ダイナミックリンカのライブラリのロードをログに記録します。
デバッガオプション:
- Debugger() と DebugStr() で停止する。 メッセージでデバッガを入力するコアサービスルーチンを有効にします。これらのルーチンは、現在のプロセスに SIGINT シグナルを送ります。
関連記事
スキームエディタについて