デバッグナビゲーターについて
デバッグナビゲーターは、一時停止中のアプリの呼び出しスタックを表示します。このナビゲータを使用すると、Swift または C ベースのコードをデバッグできます。
デバッグナビゲーターは、[デバッグ(Debug)] > [一時停止(Pause)] を選択するか、またはあなたのコードがブレークポイントに遭遇した場合、アプリケーションを一時停止するたびに自動的に開きます。
注意: アプリが一時停止されたときにデバッグナビゲーターは、プロセスビューの内容を示します。あなたのアプリが実行され、デバッガに接続されているときに、デバッグゲージは活動性を示します。
これは、アプリがブレークポイントで一時停止したときに、デフォルトでどのようにデバッグナビゲーターが表示されるかを示しています。
デバッグナビゲータで項目を選択すると、項目についての情報は、ソースエディタで、デバッグ領域に表示されます。
C 言語ベースのコードをデバッグ
デバッグナビゲーターは、1つ以上のプロセス、各々が含む デバッグゲージ、リストまたはビュー階層にスレッド/メモリーの場所を表示できる プロセスビュー、およびフィルタバーが含まれています。
注意: 同じワークスペースから複数のプロセスをデバッグしている場合、各プロセスは、その下にグループ化される、そのスレッドでデバッグナビゲーターに別々に一覧表示されます。複数のプロセスのデバッグは、クライアントとサーバプロセス間の相互作用をデバッグするのに便利な方法です。プロセスの詳細を隠したり、開くには開閉用三角ボタンをクリックします。
デバッグゲージを使用すると、実行時にアプリが CPU のパワー、メモリ、およびその他のリソースをどれほど消費しているかを見ることができます。デバッグゲージの表示を切り替えるには[表示/非表示(Hide/Show)] ボタンをクリックします。
プロセスビューセレクタのメニューを使用すると、プロセスビューでナビゲーターが何を表示するか選択できます。
- スレッドによって: フラットリストとして組織されたスレッドを表示します。
- キューによって: それらを作成したディスパッチキューの下にスレッドをグループ化します。
- ビュー階層の表示: 実行中のアプリを一時停止し、ソースエディタペインの UI をレンダリングしながら、プロセスビューにビュー階層を表示します。
注意: Xcode は、スレッドとキューのビューモード両方で現在のスタックフレームの前に記録されたバックトレースを含みます。
コードをデバッグする場合、ナビゲータはスレッドおよびキューによってスタックフレームをグループ化し、あなたが興味を持っているメモリ位置を一覧表示します。アプリのスレッドのスタックフレームをナビゲートするには、デバッグナビゲーターを使用して、現在のデバッグセッションの表示されたメモリ位置を管理します。
プロセスビューのリストからメモリ位置を削除するには、それを選択して、Delete キーを押します。
プロセスビューでスレッドまたはキューで組織されたあなたのプロセスを表示するように設定すると、スレッドは、ステータスアイコンとその実行中の状態を示します。
- アイコンがないのは、スレッドが正常に動作していることを意味します。
- 黄色のステータスアイコンは、スレッドがブロックされ、ロックまたは状態で待機していることを意味します。
- 赤色のステータスアイコンは、スレッドを中断したことを意味します。アプリケーションを再開したとき、中断されたスレッドは、コードを実行しません。
- 灰色のアイコンは、スレッドまたはブロックが、記録されたバックトレースの一部であり、現在実行されていないことを意味します。
フィルタバーを使用すると、スレッドを指定し、見たいフレームを積み重ね(stack)ます。スレッドテキストフィルタを使用すると、フィルタテキストに一致する名前を持つ唯一のスレッドやキューのみを表示できます。左ボタンは、デバッグシンボルなしのスタックフレームの表示を抑制します。中央のボタンは、デバッグシンボルのスレッドと、クラッシュしたスレッドのみを表示します。デバッグナビゲーターが、キューを表示しているときに右ボタンは実行中でないブロックの表示を抑制します。
関連記事
ワークスペースナビゲータエリアについて
デバッグゲージを使用して
関連するスレッドとスタックフレームを中心に
スレッドの一時停止
キューの表示
メモリの位置を表示