博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GDB + gdbserver 远程调试mediaserver进程
阅读量:6335 次
发布时间:2019-06-22

本文共 1988 字,大约阅读时间需要 6 分钟。

远程调试步骤

Android设备上启动gdbserverattach你想调试的进程,并指定监听调试命令的端口(此端口是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.shchoosecombo 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等,来进行对librarydebug工作:

 

 

If the program youre 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有用的命令,可以参考下网上的。

 

转载于:https://www.cnblogs.com/shakin/p/6950112.html

你可能感兴趣的文章
html img Src base64 图片显示
查看>>
[Spring学习笔记 7 ] Spring中的数据库支持 RowMapper,JdbcDaoSupport 和 事务处理Transaction...
查看>>
FFMPEG中关于ts流的时长估计的实现(转)
查看>>
Java第三次作业
查看>>
【HDOJ 3652】B-number
查看>>
android代码混淆笔记
查看>>
Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) C. String Reconstruction 并查集
查看>>
BMP文件的读取与显示
查看>>
Flash文字效果
查看>>
各种排序算法总结篇(高速/堆/希尔/归并)
查看>>
使用c#訪问Access数据库时,提示找不到可安装的 ISAM
查看>>
Highcharts X轴纵向显示
查看>>
windows 注册表讲解
查看>>
【算法】论平衡二叉树(AVL)的正确种植方法
查看>>
基于DDD的现代ASP.NET开发框架--ABP系列之1、ABP总体介绍
查看>>
react 从零开始搭建开发环境
查看>>
scala recursive value x$5 needs type
查看>>
ps -ef |grep 输出的具体含义
查看>>
markdown编辑
查看>>
ASCII 在线转换器
查看>>