ASブレークポイントデバッグ

4098 ワード

ブレークポイントデバッグ
最近は実は忙しいのですが、Android studioがデバッグ中に以前知らなかったテクニックがたくさんあることに気づき、資料を整理してまとめて共有しました.
現在使用されているバージョンは2.3.3で、3.0バージョンはまだ検討されていません.
デバッグインタフェースの説明
デバッグモードでは、デバッグインタフェースが自分で飛び出します[画像のアップロードに失敗しました...(image-6 c 50 d 5-15115215367)]
Android studioは、概ね7つの機能領域を提供しています.
シングルステップデバッグ領域ブレークポイント管理領域評価式スレッドフレームスタック領域オブジェクト変数領域変数観察領域シングルステップデバッグ:
Step Over F8
[画像のアップロードに失敗しました...(image-331 daa-15115215367)]
単一ステップでスキップし、このボタンをクリックすると、プログラムが1行下に実行されます.現在のローがメソッド呼び出しの場合、そのロー呼び出しのメソッドが実行されてから次のローに進みます.
Step Into F7
[画像のアップロードに失敗しました...(image-ce 0615-15115215367)]
単一のステップでジャンプします.この操作を実行すると、プログラムは1行下に実行されます.ローにカスタムメソッドがある場合は、メソッドの内部に入って実行を続行します.クラスライブラリのメソッドであれば、メソッドの内部には入らないことに注意してください.
Force Step Into Alt+Shift+F 7強制飛び込み
[画像のアップロードに失敗しました...(image-50 a 4 ab-1515215367)]
強制単一ステップジャンプはstep into機能と似ています.主な違いは、現在のローにメソッドがある場合、メソッドが独自に定義されているかクラスライブラリで提供されているかにかかわらず、メソッドの内部にジャンプして実行できることです.
Drop Frame
[画像のアップロードに失敗しました...(image-358 fd 1-11521215367)]
覚えやすい名前はないが、実行を中断すると理解し、メソッド実行の初期点に戻る、この過程でメソッドに対応するスタックフレームがスタックから除去される.すなわち、メソッドが呼び出された場合、現在のメソッドが呼び出された場所に戻り、すべてのコンテキスト変数の値もメソッドが実行されていない状態に戻る
public class DebugDemo {
    private String name = "default";

    public void alertName() {
        System.out.println(name);
        debug();
    }

    public void debug() {
        this.name = "debug";
    }

    public static void main(String[] args) {
        new DebugDemo().alertName();
    }
}

Debug()をデバッグすると、この操作を実行して、debug()が呼び出された場所、すなわちalertName()メソッドにコールバックします.この時点でdrop frameを実行し続けるとalertName()が呼び出された場所、すなわちmain()にコールバックする.
Force Run to Cursor
[画像のアップロードに失敗しました...(image-19 b 344-151521215367)]
Alt+F 9は既に存在するブレークポイントを無視してカーソル位置にジャンプすることができる.簡単な例を挙げて説明します:例えば今10行目で、この時私は18行をデバッグしたいと思っていますが、一歩一歩デバッグしたくないので、一度に到着することができますか?カーソルを適切な位置に合わせるだけで
Evaluate Expressionを実行することは、デバッグ行の前にインタラクティブな解釈器を埋め込むことに相当しますが、この解釈器では何ができますか?ここではresultを評価することができます.マウスの右ボタンをクリックしてevaluate Expressionを選択します.次のように表示されます.
[画像のアップロードに失敗しました...(image-b 034 f 3-151521215367)]
Return[画像のアップロードに失敗しました...(image-6 f 2 c 7 b-15115215367)]
このボタンをクリックすると、現在のアプリケーションが停止し、再起動する.言い換えれば、再デバッグしたい場合は、この操作を使用することができます.ええ、再来したという意味です.
Pause Program
[画像のアップロードに失敗しました...(image-22 cda 2-151521215367)]
このボタンをクリックすると、アプリケーションの実行が一時停止する.リカバリを行うには、以下のResume Programを使用します.
Resume Program
[画像のアップロードに失敗しました...(image-e 472 f 4-151521215367)]
F 9は次のブレークポイントを実行する場合が多いので、デバッグのために複数のブレークポイントを設定します.場合によっては、現在のブレークポイントから次のブレークポイントに移動する必要があり、2つのブレークポイント間のコードが自動的に実行されます.これにより、次のブレークポイントにデバッグする必要がなくなり、時間と労力が節約されます.
Stop
[画像のアップロードに失敗しました...(image-20 cd 14-1515215367)]
このボタンをクリックすると、関連するクローズスクリプトによって現在のプロセスが終了する.すなわち、通常のJavaプロジェクトでは、このボタンをクリックすることはデバッグモードを終了することを意味するが、アプリケーションは実行完了する.Androidプロジェクトでは、このボタンをクリックすると、appが終了することを意味する.
View Breakpoints
[画像のアップロードに失敗しました...(image-6 b 6098-1515215367)]
このボタンをクリックすると、ブレークポイント管理インタフェースに入ります.ここでは、すべてのブレークポイントを表示したり、ブレークポイントの動作を管理したり、構成したりすることができます.たとえば、削除、属性情報の変更などです.
Mute Breakpoints
[画像のアップロードに失敗しました...(image-77447 f-1515215367)]
このボタンを使用して、ブレークポイントの状態を切り替える:起動または無効にする.デバッグ中に、すべてのブレークポイントを一時的に無効にすることができ、正常な動作を実行できます.この機能は、デバッグ中にブレークポイントが関心のあるプロセスに干渉したくない場合に一時的にブレークポイントを無効にするなど、非常に役立ちます.
Show Method Return Values
デバッグ中にこの機能を有効にすると、最後の実行方法の戻り値が変数領域に表示されます.例えば、まず、この機能をオフにして、このコードをデバッグして変数領域を観察します:[画像のアップロードに失敗しました...(image-16 c 0 dd-115212115367)]
ここに画像の説明を書きます
この機能をオンにしてから、変数領域の変化を観察します.
[画像のアップロードに失敗しました...(image-b 20 cba-151521215367)]
ここに画像の説明を書きます
デバッグを続行:
[画像のアップロードに失敗しました...(image-2 eb 5 c 9-15115215367)]
ここに画像の説明を書きます
デバッグを続行:
[画像のアップロードに失敗しました...(image-3697 ad-15115215367)]
デバッグの2つの方法
これまでデバッグの基礎については紹介してきましたが、Android Studioでは「画像のアップロードに失敗しました...(image-a 1 ac 03-11521215367)」
Debug:デバッグモードで実行をインストールし、ブレークポイントを実行前に設定したり、実行後に設定したりすることができます.多くの人が最もよく使う調整方法です.
Attach process:デバッガは、Debug方式と比較して実行中のプロセスにattachすることができます.たとえば、attach processを使用してデバッグしたいプロセスに移行できます.その後、必要な場所に関連するブレークポイントを設定すればよい.