MAC下AndBug环境搭建
2016-01-09 08:39
190 查看
1、下载源代码 git clone https://github.com/swdunlop/AndBug.git 2、进入目录编译 make
3、提示python2找不到,改为python;
4、调整环境变量 : export PYTHONPATH=`pwd`/lib[pwd指andbug的目录]
5、PS:为了支持navi命令,需要install
Bottle库。[安装命令:sudo
easy_install -U bottle ]
6、备注:调试app时,对应app必须时appdebuggable为true
或 系统default.prop中ro.debuggable为 1
7、使用andbug,必须关掉monitor
+ android
studio + eclipse;
-------------andbug命令使用------------------
5、查看当前的进行信息
6、启动andbug
Andbug 有两种启动方式,一种是以进程id方式启动,一种是以包名方式启动
通过进程id或者包名指定对某个apk进行调试。
7、列举apk中的类信息
命令:classes
作用:列举出指定apk中使用的所有的Class信息,包括apk中自己实现的Class以及所调用的系统class信息
classes app :列举出所有类路径中包含了app字符串的类信息
8、列举指定类的方法信息
命令:methods android.app.NotificationManager
功能:列举出android.app.NotificationManager类中的所有方法信息
9、断点操作
9.1 对类设置断点,所有设计该类的操作都会终止下来
可以通过break-list命令查看断点设置情况
9.2 对方法进行断点设置
通过下面命令对函数进行中断
9.3 断点触发的情况
设置断点后,操作apk程序,一旦程序出发了某个设置的断点,整个程序就会挂起,并显示相关信息。通过输出的信息可以知道,apk由于调用了java.io.File.exists()Z:0函数被中断下来。其他信息还包括整个调用java.io.File.exists()Z:0函数的堆栈信息。
9.4 删除已设置断点
通过break-remove 536870916
将之前设置的中断删除掉
break-remove all表示删除所有当前设置的断点
10、恢复运行
命令:resume
功能:触发断点整个进程暂停后,通过调用resume命令,继续运行该apk
注:由于代码中bug的原因,需要连续两次调用resume命令才能恢复apk的运行
11、进程暂停命令
命令:suspend
功能:暂停当前apk进程
12、帮助命令help
13、class-trace 类跟踪命令
命令:class-trace java.io.File
功能:对 java.io.File类的调用情况进行跟踪
可以看到“thread <15> BackgroundHandler”线程,调用了“java.io.File.renameTo”,调用的参数是:
-- this=Ljava/io/File; <830018592096>
-- newPath=Ljava/io/File; <830016257352>
并且可以看到整个的堆栈调用的情况。
取消跟踪也可以使用break-remove命令实现。
14、method-trace 方法跟踪命令
命令:method-trace java.io.File renameTo
功能:对java.io.File renameTo函数进行跟踪,跟踪与直接设置断点的差别是,使用跟踪不中断目标进程的执行,只对相应函数的调用信息进行输出。
15、列举当前线程信息
命令:threads
16、对线程进行跟踪
命令:thread-trace
将main线程设置为跟踪县城,所有main县城相关的调用都会被跟踪下来,如图所示:
17、显示指定类中的静态变量的信息
命令:statics com.android.internal.view.menu.MenuBuilder
18、查看对象信息
通过class-trace命令可以跟踪到目标函数中对象的Id信息,
19、源码关联命令
命令:source 与源代码关联起来,可以是smali代码。
命令:dump 展示指定方法的代码。
21、退出命令
命令:exit
3、提示python2找不到,改为python;
4、调整环境变量 : export PYTHONPATH=`pwd`/lib[pwd指andbug的目录]
5、PS:为了支持navi命令,需要install
Bottle库。[安装命令:sudo
easy_install -U bottle ]
6、备注:调试app时,对应app必须时appdebuggable为true
或 系统default.prop中ro.debuggable为 1
7、使用andbug,必须关掉monitor
+ android
studio + eclipse;
-------------andbug命令使用------------------
5、查看当前的进行信息
adb shell
6、启动andbug
./andbug shell -p com.android.browser
Andbug 有两种启动方式,一种是以进程id方式启动,一种是以包名方式启动
通过进程id或者包名指定对某个apk进行调试。
7、列举apk中的类信息
命令:classes
作用:列举出指定apk中使用的所有的Class信息,包括apk中自己实现的Class以及所调用的系统class信息
classes app :列举出所有类路径中包含了app字符串的类信息
8、列举指定类的方法信息
命令:methods android.app.NotificationManager
功能:列举出android.app.NotificationManager类中的所有方法信息
9、断点操作
9.1 对类设置断点,所有设计该类的操作都会终止下来
break java.io.File
可以通过break-list命令查看断点设置情况
9.2 对方法进行断点设置
通过下面命令对函数进行中断
break java.io.File delete
9.3 断点触发的情况
设置断点后,操作apk程序,一旦程序出发了某个设置的断点,整个程序就会挂起,并显示相关信息。通过输出的信息可以知道,apk由于调用了java.io.File.exists()Z:0函数被中断下来。其他信息还包括整个调用java.io.File.exists()Z:0函数的堆栈信息。
9.4 删除已设置断点
通过break-remove 536870916
将之前设置的中断删除掉
break-remove all表示删除所有当前设置的断点
10、恢复运行
命令:resume
功能:触发断点整个进程暂停后,通过调用resume命令,继续运行该apk
注:由于代码中bug的原因,需要连续两次调用resume命令才能恢复apk的运行
11、进程暂停命令
命令:suspend
功能:暂停当前apk进程
12、帮助命令help
13、class-trace 类跟踪命令
命令:class-trace java.io.File
功能:对 java.io.File类的调用情况进行跟踪
可以看到“thread <15> BackgroundHandler”线程,调用了“java.io.File.renameTo”,调用的参数是:
-- this=Ljava/io/File; <830018592096>
-- newPath=Ljava/io/File; <830016257352>
并且可以看到整个的堆栈调用的情况。
取消跟踪也可以使用break-remove命令实现。
14、method-trace 方法跟踪命令
命令:method-trace java.io.File renameTo
功能:对java.io.File renameTo函数进行跟踪,跟踪与直接设置断点的差别是,使用跟踪不中断目标进程的执行,只对相应函数的调用信息进行输出。
15、列举当前线程信息
命令:threads
16、对线程进行跟踪
命令:thread-trace
将main线程设置为跟踪县城,所有main县城相关的调用都会被跟踪下来,如图所示:
17、显示指定类中的静态变量的信息
命令:statics com.android.internal.view.menu.MenuBuilder
18、查看对象信息
通过class-trace命令可以跟踪到目标函数中对象的Id信息,
19、源码关联命令
命令:source 与源代码关联起来,可以是smali代码。
命令:dump 展示指定方法的代码。
21、退出命令
命令:exit
相关文章推荐
- ajax和jquery使用技巧
- Servlet学习(一)
- python join(), bool(), strip(), dict()
- jdk代理和cjlib代理的区别
- 备战软考(4) 软考下午题攻略
- easyui+struts2 实现tree的问题及解决办法
- 多图真相:Adobe Dreamweaver CC 2014.1来了-体验卓越PSD提取和诸多精彩云功能!
- BZOJ 2427: [HAOI2010]软件安装|树形动规|tarjan
- 在线matlab lingo ruty r python go
- 你适合炒股票吗?
- jquery 处理破图
- [转载]AxureRP使用参考建议
- [消息传递之三]-NSInvocation练习
- 引用的简单用法
- Python学习-使用matplotlib画动态多图
- css3系列教程--animation
- Win10更新补丁KB3122947报错80070643使用命令解决的办法
- 日经春秋 20160109
- 天声人語 20160109 歴史観、憲法観の深い溝
- HTML5的LocalStorage、SessionStorage学习