實現交叉編譯gdb和gdbserver(gdb-7.6)
海思SDK環境下實現:
1、下載gdb:
下載地址為:http://ftp.gnu.org/gnu/gdb/
2、解壓縮:
- tar xvf gdb-7.6.tar.bz2
cd gdb-7.6
4、配置:(生成makefile)
- ./configure --target=arm-hisiv100nptl-linux --program-prefix=arm-hisiv100nptl-linux- --prefix=/home/usr/gdb-build
注:--target=arm-hisiv100nptl-linux意思是說目標平臺是執行於ARM體系結構的linux核心;--program-prefix=arm-hisiv100nptl-linux是指生成的可執行檔案的字首,比如arm-hisiv100nptl-linux-gdb,--prefix是指生成的可執行檔案安裝在哪個目錄,這個目錄需要根據實際情況作選擇。如果該目錄不存在,會自動建立,當然,許可權足夠的話。
5、編譯、安裝
make ;make install
會在--prefix指定的目錄下生成三個子目錄:bin、lib、share,我們需要的arm-linux-gdb就在其中的bin目錄下。
編譯gdb-server
1 cd /gdb-7.6/gdb/gdbserver
2 配置
./configure --target=arm-hisiv100nptl-linux --host=arm-hisiv100nptl-linux
這裡的--host指定了生成可執行檔案執行的平臺和系統:執行於ARM平臺的Linux系統
3 make
編譯生成 gdb-server
gdbserver 遠端呼叫的使用:
1將之前生成的gdbsrver 除錯程式放在目標板上或者通過nfs方式執行也可以.這樣就可以用gdb和gdbserve 來除錯開發板上的程式了.
2 要除錯程式首先在目標板上執行gdbserver
./gdbserver --remot-debug 192.168.1.100:2345 test
192.168.1.100 為目標板ip地址,2345是開通目標板的這個埠號做為通訊埠.
test 是要除錯的程式(編e 譯好的)
3 在開發板上執行gdb程式
./arm-hisiv100nptl-linux-gdb test
進入gdb 除錯狀態後:
輸入target remote 192.168.1.100:2345
4連線成功後可以除錯程式:
如:輸入 c執行程式.
相關文章
- 關於Gdb工具的交叉編譯、移植編譯
- 交叉編譯和 RPC編譯RPC
- 交叉編譯編譯
- 編譯器的自展和自舉、交叉編譯編譯
- 交叉編譯和交叉除錯環境搭建及使用編譯除錯
- 使用gdb和gdbserver除錯Android C/C++程式Server除錯AndroidC++
- 交叉編譯Qt/E和Qtopia過程編譯QT
- 交叉編譯入門編譯
- go 交叉編譯,部署Go編譯
- 淺談交叉編譯編譯
- ubuntu下編譯交叉編譯工具鏈Ubuntu編譯
- wifidog交叉編譯WiFi編譯
- android NDK 交叉編譯Android編譯
- golang初學:交叉編譯Golang編譯
- Rust 交叉編譯與條件編譯總結Rust編譯
- 交叉編譯-Mac環境使用NDK編譯FFmpeg編譯Mac
- C編譯: 使用gdb除錯編譯除錯
- C 編譯: 使用 gdb 除錯編譯除錯
- 使用gdb編譯除錯mysql編譯除錯MySql
- Go跨平臺交叉編譯Go編譯
- linux與windows交叉編譯LinuxWindows編譯
- 交叉編譯mupdf1.15.0編譯
- Go語言交叉編譯工具goxGo編譯
- protobuf 的交叉編譯使用(C++)編譯C++
- 製作交叉編譯工具鏈概述編譯
- 交叉編譯工具鏈構建原理編譯
- 交叉編譯場景分析(arm-linux)(四)--編譯readline和ncurses編譯Linux
- GDB 除錯 Mysql 實戰(一)原始碼編譯安裝除錯MySql原始碼編譯
- Tinyx 交叉編譯配置檔案(arm版)編譯
- 全網可用交叉編譯工具鏈大全編譯
- ubuntu16交叉編譯Qt5.9Ubuntu編譯QT
- iOS攻防:ssh登陸與交叉編譯iOS編譯
- 32位支援:使用 GCC 交叉編譯GC編譯
- Golang在各平臺下如何交叉編譯Golang編譯
- CMM編譯器和C編譯器過程呼叫實現的比較編譯
- 交叉編譯場景分析(arm-linux)--序編譯Linux
- 使用 goxc 方便的進行交叉編譯分發Go編譯
- 如何對 Neuron 原始碼進行交叉編譯原始碼編譯