看雪论坛
发新帖

[下载] gdb for android on-device debug

netsniffer 2017-3-16 20:33 1655

Android toolchain中的gdb源码加部分修改编译,可以在Android设备上直接调试 (通过adb shell),支持多线程。

包含arm/arm64/x86_64三种版本,64位Android设备请使用相应的*64位gdb。


上传的附件:
本主题帖已收到 0 次赞赏,累计¥0.00
最新回复 (24)
netsniffer 2017-3-16 20:35
2
目前只支持Android5.x 及以上版本
Loopher 2017-3-16 22:22
3
感谢分享
GeneBlue 2017-3-17 00:36
4
这个不错,省去用gdbserver远程调了
6
非虫 2017-3-19 13:09
5
可以公开下你补丁的代码,方便大家自行编译。
netsniffer 2017-3-20 19:44
6

对AOSP GDB 7.11修改的patch见附件

使用NDK standalone toolchain(建议使用platform-21)编译,thread_db.h用附件替换一下toolchain中的。 


狂奔的鸡骨架 2017-3-21 11:42
7
netsniffer 对AOSP GDB 7.11修改的patch见附件使用NDK standalone toolchain(建议使用platform-21)编译,thread_db.h用附件替换一下toolchain中的 ...
你好,我用的NEXUS5 5.0.1和5.1.1模块都显示未加载,输入命令回显也有问题。
netsniffer 2017-3-21 13:06
8

使用的adb是否是最新版sdk中的(新版的adb已附在附件中)?

操作过程列一下?

上传的附件:
狂奔的鸡骨架 2017-3-21 15:03
9

手机型号:Nexus5 

手机操作系统:5.0.1(已ROOT) 

adb:已更换为您提供的版本 

gdb:您提供的版本 操作步骤如下: 

adb push gdb /data/local/tmp 

adb shell 

$ su 

# cd /data/local/tmp 

# chmod 777 gdb 

# ./gdb -pid xxx 

 然后会有如下问题: 

1.在gdb中输入命令不能回显 

2.info sh自己的模块显示未加载但是通过cat /proc/pid/maps显示已加载

狂奔的鸡骨架 2017-3-21 15:14
10
netsniffer 使用的adb是否是最新版sdk中的(新版的adb已附在附件中)?操作过程列一下?
要是方便的话加下您Q请教您一下,我的Q是578294,谢谢!
ouyangtian 2017-3-22 09:46
11

gdb 硬件断点还是不错的。这个支持GUI和python么?

netsniffer 2017-3-22 12:14
12

狂奔的鸡骨架 要是方便的话加下您Q请教您一下,我的Q是578294,谢谢!

单位上不了Q,我测试过JNI SO中的断点是没问题的。

建议apk中的so使用不去除符号的版本,这样/data/app/xxxx/lib/arm/libyyy.so 就是带符号的,可以直接设置断点;

否则的话,调试时使用gdb的add-symbole-file来加载符号表, 

命令后边的地址是该so(map表中r-xp中映射的首地址 + so自身.text section地址),.text section的地址可以使用ndk中的arm-linux-androideabi-objdump来看

 e.g. 
 (gdb) set arm force-mode thumb 
 (gdb) add-symbol-file /data/local/tmp/libnativeTest.so 0x******** 
 (gdb) b native_stringFromJNI(_JNIEnv*, _jobject*) 
 ......


netsniffer 2017-3-22 12:26
13
ouyangtian gdb 硬件断点还是不错的。这个支持GUI和python么?
不支持, 要喜欢GUI/Python,可以直接用Android studio,它内置lldb来调试,效果也很不错
狂奔的鸡骨架 2017-3-22 20:24
14
netsniffer 狂奔的鸡骨架 要是方便的话加下您Q请教您一下,我的Q是578294,谢谢! 单位上不了Q,我测试过JNI SO中的断点是没问题的。建议ap ...
谢谢!
灰蓝色海 2017-4-4 11:11
15

1

灰蓝色海 2017-4-4 11:54
16

请问下lz,地址没错,为什么加载不进来这些呢

netsniffer 2017-4-5 11:00
17
你那个libNBAMobileNeno.so没有带符号,编译的时候带上-g参数,编译出来的so里会带上符号
secsip 2017-4-5 16:35
18

楼主你好,我使用的gdb和adb都是你在本帖中提供的版本,我遇到的问题是,只要gdb attach到了目标进程上,运行一会进程就出现Segmentation fault,然后退出了。

请教楼主和各位,这个问题该怎么解决?

上传的附件:
netsniffer 2017-4-6 09:52
19
估计是有反调试手段
secsip 2017-4-7 14:22
20
我也是这么想的,谢谢楼主回复
gdtiti 2017-5-4 12:32
21
楼主能不能放一个  x86版本的gdb出来啊  很多模拟器都是x86
netsniffer 2017-5-4 21:04
22
gdtiti 楼主能不能放一个 x86版本的gdb出来啊 很多模拟器都是x86
编译了个x86_64的,更新了附件,x86的问题挺多,没时间弄。
模拟器选x86_64  CPU的,建议AndroidM、N的模拟器。
暴强 2017-7-5 21:58
23
能加下好友么?
雷电模拟器版本,或者加点命令!
暴强 2017-7-5 22:00
24
gdb  +  Voltron  ==  od?
暴强 2017-7-6 07:29
25
https://github.com/snare/voltron
地址
返回



©2000-2017 看雪学院 | Based on Xiuno BBS | 域名 加速乐 保护 | SSL证书 又拍云 提供 | 微信公众号:ikanxue
Time: 0.016, SQL: 12 / 京ICP备10040895号-17