Andorid Studio NDK開發:LLDB除錯

姜家志發表於2016-06-17

LLDB是一個高效的c/c++的偵錯程式,與LLVM編譯器一起使用,提供了豐富的流程控制和資料檢測,有效的幫忙我們除錯程式。

LLDB是XCode中預設的偵錯程式,Android Studio中可以在SDK Tools中下載LLDB最新版本,在Android Studio中和gradle-experimental一起除錯NDK專案。

LLDB安裝

在Androis Studio中的Toolbar中可以找到Android的更新圖示,開啟可以看到Android SDK的升級配置,在SDK Tools中可以找到LLDB的安裝選項。
Andorid Studio NDK開發:LLDB除錯

在上一篇的《Andorid Studio NDK開發:Experimental Plugin》中介紹了使用gradle-experimental可以簡化NDK的開發配置,其中提到了在執行選項中有兩個執行的配置選項appapp-native,其中的app-native就是用來執行和除錯JNI開發的。

Debug JNI

選擇app-native,點選debug按鈕可以直接進入Debug狀態:
Andorid Studio NDK開發:LLDB除錯

可以看到程式在斷點處暫停了,在左側的狀態裡面可以看到變數的值和指標地址:
Andorid Studio NDK開發:LLDB除錯

LLDB

從上面的圖中可以看到除了Variables以外還有一個tab是LLDB,點選進入可以看到(lldb)的命令列,在這裡面我們可以輸入LLDB的命令,幫助除錯程式。
Andorid Studio NDK開發:LLDB除錯

LLDB常用命令

  • print (p)列印命令,列印變數以及其值

    p chars

  • po 列印變數的值

    po chars

  • expr 可以在除錯時動態執行指定表示式,並列印結果,用於在除錯過程中修改變數的值
    比如我們在程式裡面定義int b=1;可以在斷點的時候使用expr

expr b=10

 

  • image用於定址,可以用來棧地址對應的程式碼位置,image命令的引數比較多

    image

  • bt 命令用來堆疊資訊

 

相關文章