DDD调试opencore/stagefright
来源:互联网 发布:国家干部网络培训 编辑:程序博客网 时间:2024/05/22 17:22
Google为Android应用开发提供了eclipse加插件作为开发工具,基于eclipse可以方便调试apk,而对于底层开发人员(比如opencore开发)没有提供类似直观的开发工具及调试手段。本文旨在介绍一种基于ddd+gdbserver的调试方法,用于类似opencore的C层面的程序调试。
具体步骤如下:
开一个shell
adb shell
ps查看mediaserver进程号
gdbserver :5039 --attach pid
adb shell
ps查看mediaserver进程号
gdbserver :5039 --attach pid
(为什么是mediaserver呢,因为opencore/stagefright都被mediaserver进程引用)
再开一个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端,执行命令target remote :5039
执行完该命令后要略等一下,此时gdb会加载所需的so库
此时可以在ddd源码浏览窗口打断点,或者在console窗口通过命令置断点,
比如:b createPlayer,
然后执行命令c
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端,执行命令target remote :5039
执行完该命令后要略等一下,此时gdb会加载所需的so库
此时可以在ddd源码浏览窗口打断点,或者在console窗口通过命令置断点,
比如:b createPlayer,
然后执行命令c
至此DDD方面完成,接下来进入模拟器,点击播放视频,即可进入断点
如果想在纯命令行下调试,执行
arm-eabi-gdb out/target/product/generic/symbols/system/bin/mediaserver
arm-eabi-gdb out/target/product/generic/symbols/system/bin/mediaserver
ddd下的调试,关于ddd的使用,就要参考相关文档了
0 0
- DDD调试opencore/stagefright
- DDD调试opencore/stagefright
- DDD调试opencore/stagefright
- DDD调试opencore/stagefright
- DDD调试opencore/stagefright
- DDD调试opencore/stagefright(转载更新版)
- DDD调试 stagefright
- DDD调试 stagefright
- stagefright与opencore对比
- stagefright与opencore对比
- stagefright与opencore对比
- stagefright与opencore对比
- stagefright与opencore对比
- stagefright与opencore对比
- stagefright与opencore对比
- opencore和stagefright对比
- stagefright与opencore对比
- stagefright与opencore对比
- ZJU 1272 Numerically Speaking
- Android进度条
- 研发绩效考核的谬误
- 无锁队列的实现
- 开题
- DDD调试opencore/stagefright
- C#学习笔记4
- I2C驱动实例解析
- ScrollView上拉刷新的小例子
- hadoop cdh4.5 mapreduce yarn 配置文件 (接上文)
- Android常见UI组件之ListView(一)
- poi-----无模板生成Excel的方法
- 2014.5.5数据库设计:一对多关系的表的设计和查询技巧
- 架构一个可承受千万级访问量的动态扩展CMS