使用GDB 单步调试Android本地代码

转载:http://www.360doc.com/content/12/1228/11/9462341_256747689.shtml

 

下面就以GDB调试Rild为例,来说明如何调试Native进程。

说明

#cmd     表明该命令运行于android设备控制台上
$cmd     表明该命令运行于Linux PC控制台上
(gdb)cmd 表明该命令运行于GDB控制台上

1. 调试已运行的rild

#ps | grep rild

得到rild的进程rild-pid

#gdbserver :5039 --attach rild-pid

或者调试新的rild进程

#gdbserver :5039 rild

2. 用ADB设置转发端口

$adb forward tcp:5039 tcp:5039

3. 在android的platform目录下

$prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gdb
out/target/product/saarbmg1/symbols/system/bin/rild

4. 设置符号表

(gdb)set solib-absolute-prefix /home/loginname/android-platform/out/target/product/saarbmg1/symbols
(gdb)set solib-search-path /home/loginname/android-platform/out/target/product/saarbmg1/symbols/system/lib

5. 与GDB server连接

(gdb)target remote :5039
(gdb)shared

后面就可以进行调试了

下面是常用的gdb调试命令

(gdb)help [cmd]                            显示命令cmd的帮助
(gdb)bt                                    显示调用堆栈
(gdb)next|n                                执行下一代码
(gdb)step|s                                执行到下一行代码
(gdb)run|r                                 继续运行
(gdb)jump lineno                           执行到指定行为止
(gdb)break|b lineno|function if condifion  设置断点
(gdb)directory|dir dir1:dir2               指定源文件搜索路径

那么如何调试浏览器webkit等android应用的native代码呢?答案是肯定的,笔者成功单步调试了webkit的代码。

转载于:https://www.cnblogs.com/pengdonglin137/articles/4737058.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值