用 Eclipse + GDB調試Android中C/C++程序

fmms 12年前發布 | 50K 次閱讀 Eclipse Android開發 移動開發

一、前期準備


1、編譯通過的Android源代碼(我是Android 2.3)


2、安裝了CDT的Eclipse


3、重新編譯Android gdbserver(非必須)

        因手頭Android 2.3源碼編譯后的版本執行gdbserver時報錯:Segmentation fault,不得不重新編譯gdbserver。參考博文:自己編譯Android gdbserver(解決運行 gdbserver時 Segmentation fault 問題)



二、建立Eclipse C/C++工程

        這里的C/C++工程屬性可隨意選擇,目的是為了用Eclipse編輯和調試,不需要Eclipse做編譯工作。建立好工程后可以將部分Android C/C++源碼鏈接到工程中,方便查看。


三、編譯并安裝將被調試的程序


1、撰寫Android.mk,Andriod源碼下編譯獲得可執行文件或動態庫
這是基本工作,無須多言

2、使用帶調試符號表的C/C++程序替換原有程序
simba@simba-Vostro-3400:~/neptune/android_2.3$ adb push out/target/product/xxxx/symbols/system/bin/debug_demo /system/bin
</span>
3、在Eclipse Debug Configurations中新建C/C++ Remote Application
在Main標簽頁中設置:
C/C++ Application:
/home/simba/neptune/android_2.3/out/target/product/xxxx/symbols/system/bin/debug_demo</span>
</span>Project:
(將要調試的代碼對應工程)
Connection:
local
Remote Absolute File Path : 
/system/bin/debug_demo
</span>Commands to execute before application:
/opt/android/sdks/r15/platform-tools/adb shell gdbserver :5039 /system/bin/debug_demo
/opt/android/sdks/r15/platform-tools/adb forward tcp:5039 tcp:5039
</span>注意,這里的adb路徑一定要完整路徑選中 “Skip download to target path”</span>

在Debugger標簽頁中設置:
GDB debugger(與gdbserver對應的gdb的路徑):</span>
/home/simba/neptune/android_2.3/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gdb
</span>

GDB command file:

暫時置空

Gdbserver Settings:
Gdbserver name:gdbserver</span>

Portnumber:5039


4、開始愉悅地調試吧


--

參考文章:

用Eclipse開發與調試純粹的Android C++程序,非ndk-build、ndk-gdb

來自:http://blog.csdn.net/yuleslie/article/details/7249874

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!