デバッガーの使用


アプリをデバッグ


ワークスペースツールバーの [Run(実行)] ボタンをクリックして、アプリがうまくビルドできた後、Xcode は、アプリを実行し、デバッグセッションを開始します。データヒントと変数の値のクイックルックのようなグラフィックツールを使用して、ソースエディタ内で直接アプリをデバッグできます。


デバッグ領域とデバッグナビゲーターを使うと、実行中のアプリの現在の状態を検査し、その実行を制御できます。



XC_O_DebugFeatures_2x


品質の良いアプリを作成するには、ユーザーシステム上のアプリの影響を最小限に抑えることが必要です。アプリのリソース消費への洞察を得るために、デバッグ·ナビゲータでデバッグ·ゲージを使用し、問題を発見したら、アプリのパフォーマンスを分析し、計測するインストルメントを使用して下さい。バッテリ寿命にあなたの影響を最小限に抑えるため、エネルギーガイドを使用してください。詳細については、Mac のアプリのためのエネルギー効率ガイドiOS アプリのエネルギー効率ガイド (リンク切れ) を参照してください。


iOS と watchOS アプリを開発する場合は、設計や初期のテスト中における重要な問題を発見するためにシミュレータを使用して下さい。


自分のデバッグ作業に焦点を当てるように Xcode を構成することができます。例えば、コードがブレークポイントにあたったときには、Xcode は、自動的に警告音を再生し、Xcode はデバッグと言う名前のウインドウタブを表示し、そこで Xcode は、デバッグ領域、デバッグナビゲーター、ブレークポイントでのコードが表示します。


実行の制御


Xcode は、実行の特定の段階で、行ごとにプログラムの状態を表示し、コード行をステップ実行することができます。コードの実行、プログラムの変数やレジスタを表示したり、コンソール出力を表示し、デバッガと対話するためにはデバッグ領域を使用して下さい。また、フレームのレンダリングに OpenGL の呼び出しをナビゲートし、特定の呼び出しでレンダリングの状態の情報を表示するのにも、デバッグ領域を使用できます。


ワークスペース・ウィンドウ・ツールバーにあるビューセレクタでセンターボタン (XC_O_area_button_debug_2x) をクリックして、デバッグ領域を表示します。



XC_O_DebugArea_2x


デバッグ領域のツールバーの一時停止ボタン (これ DebugPause_2x で一時停止、DebugRun_2x で継続とを切り替えます) をクリックして、アプリの実行を中断することができます。ブレークポイントを設定するには、ソースコードファイルを開き、実行を一時停止したい行の隣のガターをクリックして下さい。ガターの青い矢印 (breakpoint_icon_2x) はブレークポイントを示しています。ブレークポイントアクションを設定したり、ブレークポイントの異なる種類を含む、ブレークポイントの詳細については、ブレークポイント·ナビゲーターのヘルプ を参照してください。


アプリが一時停止したとき、現在実行中のコードの行は、緑色で強調表示されます。デバッグ領域の上部にあるバーのボタン、ステップオーバー (IB_Debug_StepOver_2x)、ステップイン (IB_Debug_StepInto_2x)、ステップアウト (IB_Debug_StepOut_2x) ボタンを使用してコードの実行の間をステップして行けます。ステップオーバーは全てのメソッドを含め、現在のコードの行を実行します。現在のコード行がメソッドを呼び出すと、現在の行でステップインは実行を開始し、それが呼び出されたメソッドの最初の行に到達したときに停止します。ステップアウトは、現在のメソッドまたは関数の残りの部分を実行します。


DebugNavigator_2x


状態情報の表示


実行が一時停止した場合、デバッグナビゲーターは、スタックトレースを表示するために開きます。編集領域内およびデバッグ領域内の項目についての情報を表示するには、デバッグナビゲーター内の項目を選択して下さい。デバッグを進めると、スタックフレームを表示/非表示するために、スレッドを広げたり、折りたたみます。


DebugNavigator_2x


変数の値を表示するデータヒントを表示するには、ソースコードエディタで任意の変数の上にマウスポインタを置きます。デバッグ領域コンソールにオブジェクトの Objective-C の説明を表示するため、または追加のポップオーバーにその説明を表示するには、変数の隣のインスペクターアイコン (QuickLookInspectorIcon_2x) をクリックします。



変数の内容のグラフィカル表示を見るには、クイックルックアイコン(QuickLookVarIcon_2x) をクリックします。あなたは、独自のオブジェクトのカスタムクイックルック表示を実装することができます。Xcode のデバッガでカスタムタイプのクイックルック を参照してください。

DataTipQuickLook_2x


メモリ破損の検索


メモリ破損によるクラッシュは再現するのは難しく、見つけるのはさらに難しいです。アドレス健全化は、破損が発生した場合は、アプリを停止するのが Xcode を可能にするアプリにインストルメントを追加します。アドレス健全化は、アクセス割り当て解除ポインタ、バッファオーバーフロー、ヒープとスタックのアンダーフロー、およびその他のメモリの問題のような問題を見つけます。



Address_Sanitizer_2x


アドレス健全化をするには、ターゲットのデバッグスキームでそれを有効にして、アプリで使用し、アプリで使用します。Xcode は、メモリの使用状況を監視し、問題の原因となったコードの行であなたのアプリを停止し、デバッガを開きます。原因を特定するために、デバッガを使用してください。



Address_Sanitizer_enable_2x


アドレス健全化の方法の詳細については、アドレス健全化の方法 (リンク切れ) を参照してください。



メタルのデバッグ


あなたのアプリは、最高のユーザー体験を提供できるように、メタルは、現代の GPU をフルに活用しています。メタルを使うとグラフィックと計算を高速化でき、合理化された API を使用します。メタルのデバッグの詳細については、メタル のヒントとテクニック (リンク切れ)を参照してください。一般的な情報については、開発者ウェブサイトの 開発者のためのメタルメタル・プログラミング・ガイド (リンク切れ)を参照してください。



OpenGL のデバッグ


接続されたデバイス上で OpenGL ES アプリをビルドし、実行すると、デバッグ領域ツールバーは、フレームキャプチャボタン(CaptureFramebutton) を含んでいます。フレームをキャプチャするために、このボタンをクリックして下さい。OpenGL ES のフレームキャプチャを以下のように使用できます:

  • OpenGL ES の状態情報をインスペクト
  • テクスチャやシェーダーを観察などの OpenGL ES オブジェクトのイントロスペクション
  • 各描画呼び出しの前に状態の呼び出しをステップ実行し、各呼び出しでの変更を観察
  • 画像が構築される方法を正確に確認するための描画呼び出しのステップ実行
  • オブジェクトが、各描画呼び出しで使用されているアシスタントエディタで参照
  • あなたのアプリに対する影響を見るためにシェーダを編集

  • このスクリーンショットは、レンダリングされたフレームのコンポーネントを表示するために、デバッガの使用方法を示しています。左側のデバッグナビゲーターは、レンダリングした木の部分を示しており、主なデバッグビューはレンダリングされたフレームだけでなく、他の画像ソースの色と深さ (depth) のソースを示しています。


    gputrace-after_2x


    OpenGL ES のデバッグの詳細は、デバッグナビゲーターヘルプデバッグエリアヘルプ の関連項目を参照してください。







    前:スキームの管理

    次:ビュー階層の調査
    目次
    Xcode 9 の新機能

  • Part I:Xcode 概観
  • 一目見て
  • シングル・ウィンドウ・インターフェイス
    ソースコードの編集を支援
    グラフィカルな UI デザイン
    統合されたデバッグ
    テストと継続的統合
    自動保存とソース制御管理
    統合ドキュメント
    テスターと App Store にアプリを配布
    Xcode の取得
  • Part II:ワークスペースウインドウ
  • ワークスペース・ウィンドウ概観
    ワークスペースをナビゲート
  • ファイルの編集
  • 編集領域の構成
    ジャンプバーを使用
    リソースにアクセスし要素を検査
    ワークスペースツールバーを使用
  • 複数のワークスペースを使用
  • タブの使用
  • Part III:アプリの作成
  • プロジェクトの操作
  • プロジェクトは、ビルドするアプリのファイルおよびリソースのリポジトリ
    プロジェクトまたはワークスペースを閉じて開く
  • ターゲットでの作業
  • アプリ固有のターゲット設定の適用
    ターゲットに技術機能の追加
    ターゲットにオンデマンドリソースタグの追加
    ターゲットにファイル型とサービス情報の追加
    ターゲットのオーバーライドビルド設定
    関連したプロジェクトの操作
  • 代替ツールチェインの使用
  • 代替ツールチェインのインストール
  • インストールしたツールチェインの表示と管理
  • ツールチェインの表示および切り替え
    代替ツールチェインの検証、暴露、および削除
  • Part IV:コードを書く
  • ファイルを開き追加
  • テンプレートからのソースファイルの作成
    素早くファイルを開く
  • エディタを分割して関連コンテンツを表示
  • ソースコードの編集
  • 入力時にエラーを修正
    コード補完で入力スピードアップ
    中括弧、括弧のペアの一致、自動的に括弧でくくる
    ファイルにコードスニペットをドロップ
  • 検索と置き換え
  • ファイル内の検索
    すべてのシンボルを編集
    プロジェクトを検索
    ワイルドカードの使用
  • シンボルの操作
  • シンボルの定義を表示
    文書でシンボルの検索
  • コードの分析
  • コード折りたたみでコードの構造を調べる
    静的コード分析実行
  • エディタのカスタマイズ
  • 構文を意識したフォントとテキストの色を選択
    編集とインデントのオプションをカスタマイズ
    エディタのヘルプの検索
  • Part V:ユーザーインターフェースをビルド
  • Inteface Builder を使用
  • Interface Builder の部品
    インタフェースオブジェクトの追加
    文字列の検索と置換
    ストーリーボードでのデザイン
  • オブジェクトをコードに接続
  • コードにコントロールからアクションメッセージを送信
    アウトレットを通ってユーザインタフェースオブジェクトにメッセージを送信
  • 複数のスクリーンサイズでビルド
  • サイズクラスの使用
    自動サイズ変更と配置の自動レイアウトを使用
    オブジェクトの文書を表示
    ユーザーインタフェースのプレビュー
    カスタムビュークラスの作成とレンダリング
    Interface Builder のヘルプを検索
  • Part VI:アセットの追加
  • イメージの追加
  • アプリアイコンと起動イメージを追加
  • アセットカタログでイのメージアセットとの作業
    iOS の起動スクリーンファイル作成と設定
    パーティクルエミッタ効果の追加
  • 3Dシーンを追加
    その他のヘルプを探す
  • データセットの追加
  • データセットとファイルの追加
  • Watch 複合体の追加
    複合体の追加
  • Part VII:アプリの実行
  • アプリのビルド
  • アプリをビルドするスキームを選択
    アプリを実行する目的先の選択
  • シミュレーターで実行
    カスタムシミュレータ構成の作成
    実行目的先メニューでシミュレータ、デバイスの表示
  • デバイス上で実行
    実行目的先のデバイスを選択
    スキームの管理
  • Part VIII:デバッグ
  • デバッガーの使用
  • 実行の制御
    状態情報の表示
    メモリ破損の検索
    メタルのデバッグ
    OpenGL のデバッグ
    ビュー階層の調査
    システムへの影響を調査
    パフォーマンスの測定
    問題のシミュレーション
    ワークフローのカスタマイズ
  • Part IX:テスト
  • ユニットテストの使用
    継続的統合のテストの使用
    コード適用範囲の使用
    UI テストの記録
    テストの記録
  • Part X:変更の管理
  • ファイル保存の使用
    最後に保存したファイルのバージョンに戻す
    取り消しの使用
    ソースコード制御の使用
    ファイルの状態の表示
    ファイルのバージョンをコードの元の行と比較
    危険な変更を分離するため分岐を作成
    Part XI:さらなる学習
    実地の紹介を取得

  • ヘルプメニュー
  • 詳細なユーザー・ガイドから学ぶ
  • タブの使用
    内容の目次を表示
    ドキュメントのブラウズ
    ドキュメントの検索
    ドキュメントをブックマーク
    最新の状態のまま
    文書改訂履歴
    














    トップへ 














    トップへ














    トップへ 














    トップへ 














    トップへ 














    トップへ 














    トップへ














    トップへ 














    トップへ