天天看點

GDB 調試 android 本地 c/c++ 程式

有一段時間沒弄Android了,整理一下,把之前 用GDB調試 Android jni程式過程共享一下:

Android 應用層為JAVA語言,但有時需要C/C++實作一些特定功能,比如視訊編解碼,此時需要借助JAVA的JNI技術,用JAVA語言調用c/C++程式,

而C/C++程式庫 調試通常用GDB,不例外,Android 平台也提供了調試 JNI的功能,步驟如下:

1.  把 ​

​android:debuggable="true" 設定到 ​

​ ​

​AndroidManifest.xml​

​  檔案的 ​

​<application>​

​ 标簽,

2. NDK-BUILD 執行編譯動态庫時時 後面帶上 NDK_DEBUG=1

3.  Application.mk 檔案中 添加 ​

​APP_OPTIM := debug​

​ 

4. 啟動Android裝置上的 gdb server : gdbserver :5055 --attach PID

    參數為監聽端口 5055, 要調試程序号  PID,

5. 在 主控端上 執行 adb forward tcp:5055 tcp:5055

    連接配接到GDB  server.

6. 啟動用戶端 GBD :

arm-linux-androideabi-gdb

7. 設定庫路徑:

set solib-search-path obj/local/armeabi/libMySharedLib.so

target remote :5055