如何使用gdb调试libstagefright?

问题描述

我的目标是什么?
为了在使用gdb的android模拟器中远程调试libstagefright的同时获得调试符号。
到目前为止我做了什么?

  1. 下载Android源代码
  2. 通过以下方式构建stagefright库:
    i)午餐aosp_x86-userdebug
    ii)mma(来自/ frameworks / av / media / libstagefright)
  3. 构建完成后,将传输我要从中调试的.so文件 / out / target / product / generic_x86 / symbols / system / lib到模拟器中的/ system / lib。 我已经转移了libstagefright_soft_hevcdec.so文件(因为我想调试hevc库)
  4. 在设备上启动gdbserver并将其附加到mediacodec进程,在我的主机上启动gdb并建立用于调试的远程连接。

但是这没有给出调试符号,换句话说,我看不到我当前在gdb中执行的代码行。

我如何尝试使此设置正常工作?

  1. 添加的全局环境变量LOCAL_CFLAGS,LOCAL_CPPFLAGS在构建之前应设置为-ggdb。
  2. 添加TARGET_BUILD_TYPE环境变量以将其设置为在构建之前和发出午餐命令之后进行调试。
  3. 试图使用lldb而不是gdb调试代码,因为android构建过程使用clang,clang ++

上述任何事情都没有解决(或者我可能没有按照应该做的方式来做)。

所以在这里,我正在向我的堆栈溢出开发人员寻求帮助。

可能有用的信息

  1. elf dump
  2. build verbose log

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)