1,按照前一篇文章《薛定諤耗子:使用hello-gl2建立ndk-gdb環境 http://www.linuxidc.com/Linux/2013-06/85935.htm 》,我們可以順利進入無源碼調試環境,進入之後,我們就要進行實際的調試了。就像我們工作,順利通過面,而且入職了,下面我們就應該研究如何工作了。
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下載
免費下載地址在 http://linux.linuxidc.com/
用戶名與密碼都是www.linuxidc.com
具體下載目錄在 /2013年資料/6月/13日/Gdb+gdbserver無源碼調試Android 動態鏈接庫的技巧
更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11