android平台除錯

2021-08-07 01:43:37 字數 1645 閱讀 3111

1. gdbserver 位置:$ndk_dir/prebuilt/android-arm/gdbserver

2. gdb 位置:$ndk_dir/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gdb.exe

中間的路徑根據自己情況更改

需要注意的是gdbserver和gdb的版本要匹配,否則會出錯

待除錯的程式為$prj_dir/test_prj

1.在目標機上建立目錄/data/test

adb push $ndk_dir/prebuilt/

android

-arm/gdbserver /data/test/

adb push $prj_dir/test_prj /data/test/

2.在目標機賦予執行許可權

chmod +x ./test_prj

chmod +x gdbserver

3.在目標機上啟動gdbserver

./gdbserver :1234 test_prj  [param]

注意gdbserver後面有空格,冒號與1234之間沒有空格

如果test_prj需要引數,後面可以加上引數

執行成功則顯示

process test_prj created: pid = 16225

listening on port 1234

4.在宿主機(windows)上執行arm-

linux

-androideabi-gdb.exe

執行成功則顯示gdb版本號、版權資訊等,並有gdb命令提示符

5.在gdb命令提示符後輸入命令

(gdb)shell adb forward tcp:1234 tcp:1234

該命令表示通過adb對映tcp埠1234,命令中前面的是local的埠,後面的是remote的埠

可能會顯示

adb server is out of date. killing...

* daemon started successfully *

(gdb) target remote localhost:1234

該命令表示與遠端程式建立鏈結

執行成功則顯示

remote debugging using localhost:1234

cannot access memory at address 0x0

0x40011384 in ?? ()

同時目標機上顯示

remote debugging form host 127.0.0.1

至此,說明gdb與gdbserver連線成功,可以進行除錯了

6.除錯

(gdb)file $prj_dir/test_prj

該命令用於讀取除錯符號

顯示 are you sure you want to change the file?(y or n)

輸入y

(gdb) b main

該命令用於在main函式處加入斷電

(gdb) c

該命令執行程式,並在斷點處停下

(gdb) n

next

(gdb) p var

顯示變數

Android平台硬體除錯之Camera篇

之前一段時間有幸在高通android平台上除錯2款camera sensor,一款是ov的5m yuv sensor,支援jpeg out,同時也支援af,除錯比較比較簡單,因為別的專案已經在使用了,只是把相關的驅動移植過來就好 另一款是samsung的一款比較新的3m yuv ff sensor,...

Android 高通平台Camera除錯

1.af除錯部分 1 通過屬性控制 af log控制 setprop persist.vendor.camera.loginfomask 0x8000000 af info level log setprop persist.vendor.camera.lo erbosemask 0x8000000...

高通Android平台硬體除錯之Camera篇

之前一段時間有幸在高通android平台上除錯2款camera sensor,一款是ov的5m yuv sensor,支援jpeg out,同時也支援af,除錯比較比較簡單,因為別的專案已經在使用了,只是把相關的驅動移植過來就好 另一款是samsung的一款比較新的3m yuv ff sensor,...