Andorid Studio NDK开发:LLDB调试

682 查看

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开发:Experimental Plugin》中介绍了使用gradle-experimental可以简化NDK的开发配置,其中提到了在运行选项中有两个运行的配置选项appapp-native,其中的app-native就是用来运行和调试JNI开发的。

Debug JNI

选择app-native,点击debug按钮可以直接进入Debug状态:

可以看到程序在断点处暂停了,在左侧的状态里面可以看到变量的值和指针地址:

LLDB

从上面的图中可以看到除了Variables以外还有一个tab是LLDB,点击进入可以看到(lldb)的命令行,在这里面我们可以输入LLDB的命令,帮助调试程序。

LLDB常用命令

  • print (p)打印命令,打印变量以及其值

    p chars

  • po 打印变量的值

    po chars

  • expr 可以在调试时动态执行指定表达式,并打印结果,用于在调试过程中修改变量的值
    比如我们在程序里面定义int b=1;可以在断点的时候使用expr

expr b=10

 

  • image用于寻址,可以用来栈地址对应的代码位置,image命令的参数比较多

    image

  • bt 命令用来堆栈信息