Android 断点调试 webrtc medieasoup

Posted 清霜之辰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 断点调试 webrtc medieasoup相关的知识,希望对你有一定的参考价值。

android 断点调试 webrtc、 medieasoup

本文首发地址 https://blog.csdn.net/CSqingchen/article/details/120156900
最新更新地址 https://gitee.com/chenjim/chenjimblog

编译 Debug 包

修改 ./build/toolchain/android/BUILD.gn

  ...
template("android_clang_toolchain") {
  ...
  _prefix = rebase_path("$clang_base_path/bin", root_build_dir)
  cc = "$_prefix/clang"
  cxx = "$_prefix/clang++"
  ar = "$_prefix/llvm-ar"
  ld = cxx
  readelf = _tool_prefix + "readelf"
  nm = _tool_prefix + "nm"
  # 注释掉下面三行配置,即可实现 unstrip
  # strip = rebase_path("//buildtools/third_party/eu-strip/bin/eu-strip",
  #                     root_build_dir)
  # use_unstripped_as_runtime_outputs = android_unstripped_runtime_outputs
  ...
}
...

添加编译参数

关键参数为 is_debug=true symbol_level=2 android_full_debug=true
$ ./tools_webrtc/android/build_aar.py \\ --extra-gn-args "is_debug=true symbol_level=2 android_full_debug=true" \\ --arch arm64-v8a


安卓应用中修改 app/build.gradle

如下

...
android {
  buildTypes {
    debug {
      debuggable true     // 必须设置为 true
      jniDebuggable true  // 必须设置为 true
      minifyEnabled false // 必须设置为 false
    }
  }
  packagingOptions {
    ...
    // 如果不设置 doNotStrip,编译出来的安装包还是会丢失调试信息;
    // 因为我们只编译了 arm64-v8a 架构的包,所以只需要配置这一行即可
    doNotStrip "*/arm64-v8a/*.so"
  }
}
...

设置DEBUG TYPE



设置源码映射

# https://stackoverflow.com/a/53065726/4696820
# 查看 Native 层 webrtc::PeerConnection::RestartIce 这个方法的调试信息;
# 这里选用 RestartIce 而不是 CreateOffer 作为示例的原因是其输出单一,易于阅读
(lldb) image lookup -vrn webrtc::PeerConnection::RestartIce

# 设置源码映射,注意替换为自己的路径
(lldb) settings set target.source-map ../../../ D:\\code\\mediasoup\\mediasoup-client-android\\mediasoup-client\\deps\\webrtc\\src


引用自 https://webrtc.mthli.com/basic/webrtc-breakpoint/
该文中还有一些比较好 webrtc相关知识文档
比如 SDP 会话描述介绍 RTP 协议介绍 视频旋转角度

以上是关于Android 断点调试 webrtc medieasoup的主要内容,如果未能解决你的问题,请参考以下文章

Android debug:Android Studio断点调试详解

Android Studio 断点调试

Android学习笔记Android Studio简单断点调试

android studio学习----android studio断点调试

Android studio 断点调试整理

android 调试器不会在断点处停止