1 确保应用apk 包含调试信息配置
修改 app build.gradle 配置文件
android {
...
defaultConfig {
...
externalNativeBuild {
cmake {
cppFlags "-g"
}
}
}
}
2 获取apk pid
adb shell ps|grep com.android10.android10_rce_demo ## grep 后面接的是apk 应用的完整包名
3 在模拟器开启gdbserver
adb shell ##进入模拟器shell 模式
gdbserver :5039 --attach 14715
4 在开发机器上开启gdb
adb forward tcp:5039 tcp:5039
source build/envsetup.sh
gdb
set sysroot /root/bin/android10/out/soong/ndk/platforms/android-29/arch-x86_64
target remote :5039
使用gdb 命令调试
5 手动查询分配地址,加载符号表 解决代码无法显示问题
info sharedlibrary libc ##获取libc 实际分配地址
如图
add-symbol-file /root/bin/android10/out/target/product/generic_x86/symbols/apex/com.android.runtime/lib/bionic/libc.so 0xf1e09000 ##引入符号表
如图
接下来就可以进行正常使用gdb 调试了。