加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

DDD调试 stagefright

发布时间:2020-05-23 08:41:24 所属栏目:程序设计 来源:互联网
导读:Google为Android应用开发提供了eclipse加插件作为开发工具,基于eclipse可以方便调试apk,而对于底层开发人员(比如opencore开发)没有提供类似直观的开发工具及调试手段。本文旨在介绍一种基于ddd+gdbserver的调试方法,用于类似 opencore的C层面的程序调试

Google为Android应用开发提供了eclipse加插件作为开发工具,基于eclipse可以方便调试apk,而对于底层开发人员(比如opencore开发)没有提供类似直观的开发工具及调试手段。本文旨在介绍一种基于ddd+gdbserver的调试方法,用于类似 opencore的C层面的程序调试。 具体步骤如下: 开一个shell
adb shell
ps查看mediaserver进程号
gdbserver :5039 --attach pid (为什么是mediaserver呢,因为opencore/stagefright都被mediaserver进程引用) //5039是端口号
再开一个shell
adb forward tcp:5039 tcp:5039
cd /working/myandroid
ddd –debugger arm-eabi-gdb out/target/product/generic/symbols/system/bin/mediaserver
而后会进入ddd程序
在其console窗口执行如下两个命令,事实上会从下面指定目录加载so库
set solib-absolute-prefix /working/myandroid/out/target/product/generic/symbols
set solib-search-path /working/myandroid/out/target/product/generic/symbols/system/lib 接下来连接 server端,执行命令t arget remote :5039
执行完该命令后要略等一下,此时gdb会加载所需的so库
此时可以在 ddd源码浏览窗口打断点,或者在console窗口通过命令置断点,
比如:b createPlayer,
然后执行命令c 至此DDD方面完成,接下来进入模拟器,点击播放视频,即可进入断点 如果想在纯命令行下调试,执行
arm-eabi-gdb out/target/product/generic/symbols/system/bin/mediaserver ddd下的调试,关于ddd的使用,就要参考相关文档了

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读