目录
前言:
之前开发过程中,WebRTC 在 Android 上的断点调试比较麻烦,一直困扰没有解决,后与IOS开发同学交流发现xcode是可以的,通过LLDB验证最后是可行的,解决了长久以来困扰
一编译Debug包
搭建编译环境,编译rtc的so请参考之前文章
打断点自然需要使用到包含调试信息,编译 rtc库避免编译时这些信息被 strip 掉,
因此需要修改webrtc src目录下 build/toolchain/android/BUILD.gn文件
二 工程配置
编译WebRTC用的是Ubuntu虚拟机 WebRTC源码挂载可以共享目录
buildTypes {
...
debug {
debuggable isDebug // 必须设置为 true
jniDebuggable isDebug // 必须设置为 true
minifyEnabled false // 必须设置为 false
}
}
packagingOptions {
// 如果不设置 doNotStrip,编译出来的安装包还是会丢失调试信息;
doNotStrip "*/arm64-v8a/*.so"
doNotStrip "*/armeabi-v7a/*.so"
}
三LLDB断点调试配置
1 通过LLDB 命令并得到虚拟机打so的源码路径
2在 Android Studio Debugger 的 LLDB Startup Commands 中添加如下命令:
3替换为本机 WebRTC源码共享目录的绝对路径,否则 LLDB 会替换失败(无法识别 务必为绝对路径 )
四 单步调试
必须记录一下这个时刻,AndroidStudio 有断点调试能力
可以在 Android Studio 里单步调试 WebRTC Android 的 native 代码
Android开发的同学 现在就方便深入学习 WebRTC源码
版权声明:本文为zrjliming原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。