編譯時configure命令參數
--target 目標機編譯器前綴 --target=arm-linux 默認為i386-linux
--host 編譯后的程序需要在哪里運行 --host=arm-linux 默認為i386-linux
--prefix 指定要安裝的目錄 一般默認/usr/local
第一種情況:安裝linux下的gdb、gdbserver
./configure
make
make install
第二種情況:安裝交叉編譯的gdb、gdbserver
生成linux上的gdb
./configure --target=arm-linux --prefix=存放可執行文件目錄
make
make install
生成開發板上的gdbserver
cd gdb/gdbserver
./configure --target=arm-linux --host=arm-linux
make
make install
交叉調試方法
開發板上執行: gpbserver 開發板ip:通信端口(隨意) 程序名 [程序參數]
linux上執行:arm-linux-gdb 程序名
target remote 開發板ip:端口
注:執行target remote后,開發板上的程序開始運行
區分安裝包名
x86_64-linux-gnu 包括gcc、g++、gdb、ar等,此包linux系統自帶
gcc-linaro-7.1.1-2017.08-x86_64_aarch64-linux-gnu.tar 如上,不過不是系統自帶,且是作用於安卓64
arm-linux-gdb.tar 交叉編譯的gdb
gdb-8.0.tar.gz linux上的gdb
gdb、gdbserver詳解
由於嵌入式系統資源有限,一般不能直接在目標系統上調試,所有采用gdb+gdbserver的交叉編譯方式進行調試。gdbserver在目標機上(開發板)運行,gdb在宿主機上運行。