GDB + gdbserver 远程调试mediaserver进程
远程调试步骤
在Android设备上启动gdbserver并attach你想调试的进程,并指定监听调试命令的端口(此端口是TV上的端口)
$ adb shell
# ps |grep media #查看要调试进程的PID,以mediaserver进程为例
# gdbserver :1234 --attach 96 #:1234是端口号,96 是进程ID
如果设备上没有gdbserver,可以由google ndk中获取,在ndk的如下目录可以找到这个文件:
android-ndk-r8/toolchains/arm-linux-androideabi-4.9/prebuilt/android-arm
可以将此文件先推送到设备上。
进入源码服务器,比如5520编译服务器地址10.9.44.42
进入到源码工程目录下,进行环境配置,执行build文件夹下的envsetup.sh和choosecombo xx xx xx 命令,这时就可以使用gdbclient了。
adb connect 电视,成功后执行端口映射,将pc机的1234端口映射到电视1234端口
$ adb forward tcp:1234 tcp:1234 #端口映射,将pc机的1234端口映射到电视的1234端口
$ 在pc端的源码根目录下,执行 gdbclient -e mediaserver -p 1234 #从1234端口调试mediaserver
$ target remote:1234
接下来通过file命令来加载将要调试的可执行文件,对于android application来说,均为 out/target/product/generic/symbols/system/bin/app_process 这个文件,及设置搜索solib的搜索路径。
$file /home/luckychou/share/workspace/MT5520_DEV_Q3/release/android/l-pdk/out/target/product/mt5520_ll/symbols/system/bin/app_process32
$ set solib-search-path /home/luckychou/share/workspace/MT5520_DEV_Q3/release/android/l-pdk/out/target/product/mt5520_ll/symbols/system/lib
$ set solib-absolute-prefix /home/luckychou/share/workspace/MT5520_DEV_Q3/release/android/l-pdk/out/target/product/mt5520_ll/symbols/system/lib
之后,即可如调试PC端的C/C++ code一样,下断点,执行,查看内存内容,查看back trace等,来进行对library的debug工作:
If the program you’re backtracing is multi-threaded, you might want to get a backtrace for all threads:
(gdb) thread apply all bt
Another thing which is quite helpful to report is what variables were set locally at each point in the stack:
(gdb) bt full
You might want to report the output of the combination of the preceding options:
(gdb) thread apply all bt full
And if this is too much irrelevant output, you might want to keep only a few calls, such as the top 10:
(gdb) thread apply all bt full 10
If you have a large backtrace, you can log gdb output to a file (the default is gdb.txt):
(gdb) set logging on
(gdb) set logging file myfile.txt
还有很多其他gdb有用的命令,可以参考下网上的。
GDB + gdbserver 远程调试mediaserver进程的更多相关文章
- GDB + gdbserver 远程调试android native code
原文地址:GDB + gdbserver 远程调试android native code 作者:tq08g2z 以调试模拟器中的native library code为例. Host: ubuntuT ...
- gdbserver远程调试嵌入式linux应用程序方法
此处所讲的是基于gdb和gdbsever的远程调试方法.环境为:PC机:win7.虚拟机:10.04.下位机:飞嵌TE2440开发板. 嵌入式linux应用程序的开发一般都是在linux里面编写好代码 ...
- 使用gdbserver远程调试
使用gdbserver远程调试 1.默认crosstool交叉编译器没有自带gdbserver,需要自行编译 到GNU官方FTP下载,目前最新版的是gdb-6.7.1下载地址:http://ftp ...
- gdb 远程调试android进程 -转
什么是gdb 它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C.C++代码. 它主要可以做4件事情: 随心所欲地启动你的程序. 设置断点,程序执行到断点处会停 ...
- gdb 远程调试android进程
原文:http://blog.csdn.net/xinfuqizao/article/details/7955346?utm_source=tuicool 什么是gdb 它是gnu组织开发的一个强大的 ...
- gdbserver 远程调试问题:设置文件和so搜索路径
编写一个必定crash 的程序 #include <stdio.h> void crash(){ char *a=0; *a=0; } int main() { printf(" ...
- vc远程调试启动进程(非attach)
被调试端设置同attach进程方式的远程调试 代码端,需要在[Project] [Properties] [Configuration Properties] [Debugging].将Debugge ...
- 在海思芯片上使用GDB远程调试
1 前言 使用海思平台上(编译工具链:arm-himix200-linux)交叉编译 GDB 工具(使用版本8.2,之前用过10.2的版本,在编译 gdbserver 遇到编译出错的问题,因为关联了其 ...
- GDB+GDBServer调试Linux应用程序
参考:http://blog.csdn.net/shanghaiqianlun/article/details/7820401 一.gdb+gdbserver总体介绍 远程调试环境由宿主机GDB和目标 ...
随机推荐
- Context3D的setProgramConstantsFromMatrix使用时需注意的事项
setProgramConstantsFromMatrix() public function setProgramConstantsFromMatrix(programType:String, fi ...
- Ubuntu 16.04/CentOS 6.9安装Apache压力(并发)测试工具ab
说明: ab工具已经在Apache中包含,如果不想安装Apache,那么可以使用下面方法单独安装. 安装: Ubuntu: sudo apt-get install apache2-utils Cen ...
- java实现点选汉字验证码(自己修改后的)
参考:http://blog.csdn.net/qq_26680031/article/details/51168527 package com.rd.p2p.web; import java.awt ...
- ADOX创建ACCESS数据库列名的数据类型
Type 属性 指示 Parameter.Field 或 Property 对象的操作类型或数据类型. 设置和返回值 设置或返回下列 DataTypeE ...
- virtualenv 环境安装
# Python 2.7.6:wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xztar xf Python-2.7.6.tar. ...
- 机器学习算法实践:朴素贝叶斯 (Naive Bayes)(转载)
前言 上一篇<机器学习算法实践:决策树 (Decision Tree)>总结了决策树的实现,本文中我将一步步实现一个朴素贝叶斯分类器,并采用SMS垃圾短信语料库中的数据进行模型训练,对垃圾 ...
- 【Hadoop】Hadoop MR 性能优化 Combiner机制
1.概念 2.参考资料 提高hadoop的mapreduce job效率笔记之二(尽量的用Combiner) :http://sishuo(k).com/forum/blogPost/list/582 ...
- linux中grep命令
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字 ...
- mpush 服务端配置 for windows 服务自动运行
mpush 服务端配置 以下安装部分是参照官方的步骤, 一.安装jdk1.8并配置环境变量 示例: http://www.cnblogs.com/endv/p/6439860.html 二.Wind ...
- EffectiveJava(2)应对多个构造函数应当使用构建器
** 应对多个构造函数应当使用构建器 ** 静态工厂和构造器都不能很好的扩展到大量的可选参数,遇到大量参数有大量可选域时,只能重复生成可选参数递增的构造方法,这种构造模式叫做重叠构造器模式 javaB ...