1,按照前一篇文章《薛定諤耗子:使用hello-gl2建立ndk-gdb环境 》,我们可以顺利进入无源码调试环境,进入之后,我们就要进行实际的调试了。就像我们工作,顺利通过面,而且入职了,下面我们就应该研究如何工作了。
2,首先对于无源码,我们第一个想到的就是如何看汇编代码了,就像dos时代的debug一样。怎么看呢?
其实很简单,只需要打开一个一个开关就可以了。
(gdb) set disassemble-next on
打开这个开关之后,如果我们执行si指令之后,就会像当年dos程序一样的显示出汇编代码了。
除了si显示下一条指令的汇编代码,我们还可以显式的去显示我们想知道的汇编代码
3,除了查看汇编代码以外,我们还想看看寄存器的值,如何查看?使用info register指令
4,使用反汇编,我们可以看出代码执行到什么位置,但是这种局部的代码,实在不好分析,所以,我们需要动态调试和静态分析结合起来使用,静态工具最好使用IDA Pro,这是一个非常优秀的工作,逆向工程里的瑞士军刀。
使用IDA Pro,不但,只需把鼠标放到跳转的函数上面,就可以
另外IDA Pro选择图形方式看代码,你还可以清楚看出代码的逻辑结构
5,除了使用export函数名设置断点以外,还可以使用地址设置断点,地址设置断点的方法就是在地址前加“*”号。当函数调入系统库很深的时候,我们就可以使用地址的方法让系统运行到我们制定的地方。
作者:薛定諤耗子
Gdb+gdbserver无源码调试Android 动态链接库的技巧 图文版 PDF下载
具体下载目录在 /2013年资料/6月/13日/Gdb+gdbserver无源码调试Android 动态链接库的技巧