android 通過gdbserver 除錯c

2021-06-22 12:16:59 字數 898 閱讀 2491

有些事真的很煩鎖,但是又不得不做

環境:ubuntu12.04

ndkr9

android sdk

android 4.2.2 盒子,已root

過程:

1、c++ 編寫程式

2、ndk-build  ndk_debug=1 //強制生成除錯資訊

3、adb push gdbserver /system/bin   //把 生成的libs下armeabi下的 gdbserver 放到android盒子裡,放到system/bin 下,可以直接啟動

4、adb push  程式 /data/bin 下,這裡一定要注意,程式不是libs下的 而是obj下的 obj/local/armeabi/ 下的程式,原因就是:預設情況下,android的編譯系統在編譯程式時已經使用了「-g」選項,即已經生成了除錯資訊。但是在生成最終的檔案時,是經過strip的,去除了所有到除錯資訊。所以最終我們到除錯目標要使用strip之前的檔案。

5、除錯步驟

a、啟動終端 進入android,命令:

adb shell

b、在android終端啟動除錯, 命令:

cd /data/bin    //程式放在了這裡

gdbserver  :1234 程式   //gdbserver 啟動監聽埠號,用於和pc機通訊 除錯

c、在啟動終端,啟動gdb, 命令:

arm-linux-androideabi-gdb   //這個玩意在ndk  toolchin 裡,能找到吧

d、執行:

shell adb forward tcp:1234 tcp:1234

target remote localhost:1234

file obj/local/armeabi/程式

就可以除錯了

通過wifi除錯android程式

資料線丟了,不想花錢去買,在網上看了看,android手機居然可以通過wifi進行程式的除錯,太好了,自己搞了一下,雖然網上寫的很詳細,但是還是有些問題,記錄下來,下次參考。1.首先讓android 聽指定的埠 這一步需要使用shell,因此手機上要有終端模擬器,不過網上很多,隨便找個就行了,依次敲...

android 通過uri啟動Activity

uri定義了通訊協議 uri uri uri.parse com.sds.gw 通過action和uri呼叫第二個程序中的activity,並傳遞資料 intent invokeintent new intent null,uri invokeintent.putextra prm1 z invok...

android 通過tcpdump抓包

1.手機root許可權 3.adb push e tcpdump data local tcpdump 4.adb shell 用su獲得root許可權 5.cd data local 6.tcp i any p s 0 w sdcard capture.pcap 引數 i 監聽任何網路介面 p 禁...