1. 程式人生 > >AndroidStudio的debug功能詳解

AndroidStudio的debug功能詳解

執行debug模式

進入debug模式
1. 進入debug
- 點選圖中紅色圓圈圈起的左邊綠色按鈕,執行app的debug模式,快捷鍵Shift+F9
- 點選圖中紅色圓圈圈起的右邊按鈕,可以選擇正在執行的程序attach debugger
1. 打斷點:滑鼠點選編輯框左側,出現紅色圓點

斷點分類

斷點的分類
這張圖可以看出斷點也有行斷點、方法斷點、欄位斷點、異常斷點。其實打斷點仔細觀察也可以發現它們的標識圖片是不同的,就是上圖中每行前面的那四種不同的小紅點。

  • 行斷點: 當執行到此行是停止執行,等待除錯。
  • 屬性斷點:打在類的成員變數上,當變數初始化或變數的值改變時觸發斷點。當然也可以配合其他用法設定過濾。
    屬性斷點
  • 方法斷點:打在一個函式的首行,進行函式級別的除錯,更可以打在JDK的原始碼裡,檢視函式呼叫。普通的斷點是不能打在原始碼裡的。
    方法斷點
  • 異常斷點:當丟擲指定異常時觸發斷點。AS可以在Breakpoints中點選左上角 + 號,選擇Java Exception Breakpoints,來指定一個異常。
    異常斷點

基本操作

debug操作按鈕
從左到右依次

  1. 跳到當前執行的斷點處、
  2. Step Over 單步執行、
  3. Step Into 進入正在執行的方法(必須是自定義的方法)、
  4. Focus Step Into 可以進入原始碼
  5. Step Out 跳出正在執行的方法
  6. Drop Frame 返回到當前方法的呼叫處
  7. Run to Cursor 執行到游標處
  8. Evaluate expression 計算選中的變數的值

debug操作按鈕
從上到下依次為:

  1. 切換debugger模式
  2. 執行至下一斷點,(從暫停)恢復程式
  3. 暫停程式
  4. 關閉除錯
  5. 檢視斷點
  6. 隱藏斷點
  7. 檢視執行緒堆疊

高階操作和斷點過濾

點選上一張圖中的5檢視斷點可以開啟下面的面板,這張面板提供了關於debug的許多高階功能:
debug功能操作圖解

條件過濾

條件過濾
右擊斷點,可以設定condition。如圖所示,設定一個變數mJoinVaule.equals(“222”),點選Done。當在mJoinEt這個EditText中輸入222時才會觸發這個斷點。
在BreakPoints面板同樣可以設定條件斷點。

測試程式碼

下面是一段測試程式碼,用來測試後面的功能

package com.jnxy.arithmetic.base;

/**
 * Created by admin on 2016/8/5.
 */
public class Person {

    int age;

    public void out() {
        System.out.println("age : " + age);
    }
    public Person(int age) {
        this.age = age;
    }


    public static void main(String [] args) {
        Person p1 = new Person(3);
        Person p2 = new Person(5);
        Person p3 = new Person(8);
        Man man = new Man(10, 10);
        Woman woman = new Woman(12, 12);

        Person[] persons = new Person[]{p1, p2, p3, man, woman};
        for (Person person : persons) {
            person.out();
        }
    }
}
class Man extends Person {

    int weight;

    public Man(int age, int weight) {
        super(age);
        this.weight = weight;
    }
}
class Woman extends Person{

    int height;

    public Woman(int age, int height) {
        super(age);
        this.height = height;
    }
}

日誌斷點

日誌斷點打點
斷點打在上方程式碼第27行,選中程式碼,同時設定Condition和Log evaluation expression,這樣只有person.age==8時斷點生效,才會在log打印表達式。當然,也可以值設定Log表示式。控制器輸出如下圖,可以看到只有age==8時才打印了toString().
日誌斷點效果

例項過濾

例項過濾打點
打好斷點,並設定觸發斷點的例項
設定例項過濾條件
繼續執行程式,當設定的例項呼叫方法時斷點生效。
例項過濾斷點生效

類過濾

類過濾條件設定
首先設定Class Filter,內容為要過濾類的完整路徑,設定為只有Man類呼叫方法斷點生效,下圖age==10,證明確實是Man類呼叫的方法。
類過濾效果

執行次數斷點

執行次數斷點條件設定
執行次數斷點效果
Pass Count和Condition具有相似之處,但Condition用途應該更廣泛一些。

設定變數值

設定變數值
除錯過程中,選中一個變數右鍵可以可以進行Set Value操作,這項強大的功能對需要不同資料進行判斷的情況提供了極大地便利。

相關推薦

Spring基本功能

tex factor oid out 負責 sch bsp 初始化 pub 一、SpringIOC   Spring的控制反轉:把對象的創建,初始化,銷毀的過程交給SpringIOC容器來做,由Spring容器控制對象的生命周期。   1.1 啟動Spring容器的方式:

ServletContext作用功能

tle 記錄 人員 target 列表 頁面 catalog 程序 iyu 本文轉自http://blog.csdn.net/lvzhiyuan/article/details/4664624 感謝作者 ServletContext,是一個全局的儲存信息的空間,服務器開始

mysql慢查詢功能

mysql 慢查詢 優化有人的地方就有江湖,數據庫也是,sql優化這個問題,任重道遠,我們總是禁不住有爛sql。怎麽辦呢,還好各大數據庫都有相關爛sql的收集功能,而mysql的慢查詢收集也是異曲同工,配合分析sql的執行計劃,這個優化就有了搞頭了。開啟mysql慢查詢日誌1.查看當前慢查詢設置情況#查看慢查

ThinkSNS積分商城系統功能

信息 查看 修改 公開 送禮物 介紹 體驗 邏輯與 詳細 積分商城含PC端、Android APP、iOS APP;在ThinkSNS PC端首頁導航欄點擊“拓展功能”,然後選擇“積分商城”進行體驗;APP端則是在“發現”內,點擊“積分商城”進入應用,體驗。 PC積分商城功

UI Recorder 功能

斷言 完成 需要 加載完成 eight nal doc 字符 一段 前言: UI Recorder安裝教程見:UI Recorder 安裝教程(一)、UI Recorder 安裝教程(二) 本次著重介紹UI Recorder錄制過程中的功能按鈕:添加懸停,添加斷言,使用變量

MySQL Flashback 閃回功能

轉換 下載 libstdc -s bin 二進制日誌 pos 發生 插入 閱讀目錄 1. 簡介 2. 閃回原理 3. flashback安裝 4. 使用簡介 5. Flashback工具使用註意點 回到頂部 1. 簡介 mysqlbinlog flashback(閃

PHP error_reporting() 錯誤控制函數功能

互操作 log 成了 bug art 恢復 tin 有意 cover 定義和用法: error_reporting() 設置 PHP 的報錯級別並返回當前級別。 函數語法: error_reporting(report_level) 如果參數 level 未指定,當前報

應用層協議及其功能

應用層應用層協議及其功能詳解 DNS: 域名服務,用於將名稱解析為IP地址,反之亦然 DNS是一個倒置的樹形結構。最頂部是根域,用英文句點(.)表示。全球有13個根域服務器,一臺主服務器在美國,9臺輔助服務器在美國,2臺在歐州,一臺在日本。 根域服務器以下是一級域(頂級域)、二級域、三級域……最多127級

NAT功能及案例分析—華為NAT server的實現

NATNAT #network address translation - 網絡地址轉換。 NAT的分類 #靜態NAT、動態NAT,動態NAT包含了我們常用的PNAT(PAT)。 端口nat (端口地址轉換 華為&思科NAT對比 靜態NAT #靜態轉換是指將內部網絡的私有IP地址轉換為公有IP地址

Bayboy功能

情況 style prope bubuko 文本 info ren enter 詳解 Bayboy功能詳解 一、Badboy中的檢查點 1.1以sogou.com搜索為例,搜索測試 步驟:打開Badboy工具,在地址欄中輸入搜狗網址;輸入 測試 進行搜索;點擊紅色按鈕停止錄

opensns功能

技術分享 正在 其他 style tdi 圖書 空間 標簽 css opensns功能詳解 #wmd-preview h1 { color: #0077bb } opensns功能詳解 軟件工程 輪播功能 此項可以用來發布廣告、新聞等。對於實驗室網站而言,可

Laravel 5使用Laravel Excel實現Excel/CSV文件導入導出的功能

使用 pat 不存在 data utf-8 標題 sts lda http https://mp.weixin.qq.com/s/Gel1eMHz6_eDWgDMaBQ5BQ 這篇文章主要給大家介紹了關於在Laravel 5中如何使用Laravel Excel實現Exc

關於syslog日誌功能 事件日誌分析、EventLog Analyzer

linux 活動 數據 linu type 監控 roc oracle windows系統 關於syslog日誌功能詳解 事件日誌分析、EventLog Analyzer 一、日誌管理保障網絡安全Windows系統日誌分析Syslog日誌分析應用程序日誌分析Windows

USB虛擬邏輯分析儀,虛擬邏輯分析儀高級觸發功能及圖示

ces jpg 高級 應用 shadow bcf ext ado 很多 LA2132 、32\64通道 G系列USB虛擬邏輯分析儀有很多高級觸發功能,但許多用戶用不好這些觸發功能,下面介紹這些功能的使用。 時序測量: 采集的數據作為時序顯示。 LVDS簡介 :LVDS即低壓

V-Ray 3.6 for SketchUp 新功能(全)

作者 | 活力網Caigle 當大家Vray3.4都沒有捂熱的時候 Chaos Group 官方 默默釋出了最新版渲染器Vray3.6 for SketchUp 與 Trimble 釋出 SketchUp Pro 2018 時間只相差不到一天 看來 Chaos Group 早

SAP系統中信用控制功能

1、引言 現金銷售和預收款銷售一般指發生在壟斷性行業,多數企業不得不面對產品賒銷的兩難選擇,賒銷是把雙刃劍,如果不賒銷,不能迅速擴大銷量,從而影響企業的成長速度;如果賒銷,則生意雖然做大,特別國內信用制度還未完善情況下,大筆壞帳也跑出來了,嚴重降低資金週轉率和

windows平臺,實現錄音功能

  音訊處理分為播放和錄音兩類。對這些處理,微軟提供了一些列函式,稱之為Waveform Functions。這篇文章討論錄音功能。會對微軟提供的函式做簡單說明,並對這些函式封裝成c++類,再進一步封裝成c#類。 1 Waveform Functions函式簡介 根據錄音處理步驟,對這些函式做簡

幫助臺和資產管理軟體功能

ManageEngine SeviceDesk Plus是一個全面的幫助臺和資產管理軟體,它為IT管理者和桌面代理提供了一個整合的控制檯,用來管理和維持來自組織中IT資源使用者的服務請求,和對應的IT資產。IT幫助臺在IT服務提供中起著重要的作用。當IT服務出現問題的時候,利用它可以第一時間聯絡使用者。同時I

Oracle 資料庫服務 功能

Oracle * VSS Writer Service -- Oracle卷對映拷貝寫入服務,VSS(Volume Shadow Copy Service)能夠讓儲存基礎裝置(比如磁碟,陣列等)建立高保真的時間點映像,即對映拷貝(shadow copy)。它可以在多卷或者單個捲上建立對

13.idea中debug功能

左鍵雙擊加斷點,選擇debug執行 如下:這是idea裡的debug的一個強大之處,直接給你把物件資訊顯示在後面了,   然後關於幾個鍵的分析 alt+F10:展示執行斷點,游標會移到斷點那一行首  F6:跳到下一行  F5:進入程式碼裡面