<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 建立ARM+Linux應用程序調試環(huán)境

建立ARM+Linux應用程序調試環(huán)境

作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò ) 收藏
Gdb+gdbserver+insight環(huán)境的搭建
1.下載gdb源代碼http://ftp.gnu.org/gnu/gdb/

2.配置安裝gdb+gdbser
$ tar jxvf gdb-6.6.tar.bz2
$ cd x/gdb
$ ./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v
--prefix用于指定安裝路徑
--target=arm-linux用于制定目標環(huán)境的編譯
編譯,$ make
安裝,$ sudo make install
之后在x/bin文件夾下生成arm-linx-gdb可執行文件.
$ cd gdbserver
配置文件:
$ ./configure --target=arm-linux --host=arm-linux
(--target=arm-linux表示目標平臺,--host表示主機端運行的是arm-linux-gdb,不 需要配置—prefix,因為gdbserver不在主機端安裝運行)
$ make CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
(這一步要指定你自己的arm-linux-gcc的絕對位置,相對的通常不行,提示make: arm-linux-gcc: Command not found,如果用的相對路徑,即直接賦值arm-linux-gcc,可采取make時(shí)傳遞參數,也可以直接修改gdbserver目錄下的Makefile文件中的環(huán)境變量CC)
之后在gdbserver目錄下生成gdbserver可執行文件.
可將它通過(guò)nfs拷貝到目標板上運行.
如:mount –t nfs host:/friendly-arm/root /mnt –o ro,nolock
這里如果沒(méi)有加上選項–o ro,nolock無(wú)法正常mount.
@在目標板上運行
(1)將要調試的文件和gdbserver放在同一個(gè)文件夾下
vivi>./gdbserverhost:port“待調試文件”
(2)在主機段執行arm-linux-gdb “待調試文件”
(gdb)target remote client:port連接客戶(hù)機
注意:(1)在目標機上通過(guò)gdbserver調試的程序在gdbserver運行的時(shí)候已經(jīng)運行了,并且其中不包含調試的符號信息,所以要想加入符號信息只能通過(guò)host運行的gdb加入含有調試信息的可執行文件。
(2)剛開(kāi)始的時(shí)候將./gdbserver下載到目標機后不能運行,其主要原因就是所制作的網(wǎng)絡(luò )根文件系統缺少libthread_db.so.1庫文件。但是發(fā)現lib中并沒(méi)有該文件,只有一個(gè)鏈接文件,通過(guò)file命令查看:
[root@localhost lib]# file libthread_db.so.1
Libthread_db.so.1: symbolic link to libthread_db-1.0.so
發(fā)現該鏈接文件鏈接到libthread_db-1.0.so該庫文件,于是將文件libthread_db-1.0.so拷貝到根文件系統,然后改名為L(cháng)ibthread_db.so.1,之后gdbserver能正常運行了.

3.安裝gdb圖形調試界面insight(gtk軟件包)
下載地址:http://sourceware.org/insight/版本為:insight-6.6.tar.bz2
$ tar–jxvfinsight-6.6.tar.bz2
$ cd insight-6.6
配置文件:
$./configure --target=arm-linux --enable-sim --prefix=/usr/local/arm/insight
配置選項的解釋同上.
編譯,$ make
安裝,$ sudomakeinstall
注意:在第一次編譯的時(shí)候老是出現問(wèn)題,最后發(fā)現自己在裝RedHat9.0的時(shí)候為了節省磁盤(pán)空間沒(méi)有安裝gtk軟件包,所以編譯的時(shí)候會(huì )出錯。但是在裝了之后,再次編譯insight-6.8.tar.bz2版本,出現了X參數未初始化的錯誤。然后重新?lián)Q成insight-6.6.tar.bz2版本,編譯成功,安裝.
關(guān)于gdb遠程調試參見(jiàn):http://codex.wordpress.org.cn/GDB_Manual_17_1

剩下需要解決,就是busybox在minicom下如何終止程序的運行。


關(guān)鍵詞: ARMLinux調試環(huán)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>