<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 建立ARM+Linux應(yīng)用程序調(diào)試環(huán)境

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

          3.安裝gdb圖形調(diào)試界面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
          配置選項(xiàng)的解釋同上.
          編譯,$ make
          安裝,$ sudomakeinstall
          注意:在第一次編譯的時(shí)候老是出現(xiàn)問(wèn)題,最后發(fā)現(xiàn)自己在裝RedHat9.0的時(shí)候?yàn)榱斯?jié)省磁盤空間沒(méi)有安裝gtk軟件包,所以編譯的時(shí)候會(huì)出錯(cuò)。但是在裝了之后,再次編譯insight-6.8.tar.bz2版本,出現(xiàn)了X參數(shù)未初始化的錯(cuò)誤。然后重新?lián)Q成insight-6.6.tar.bz2版本,編譯成功,安裝.
          關(guān)于gdb遠(yuǎn)程調(diào)試參見(jiàn):http://codex.wordpress.org.cn/GDB_Manual_17_1

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


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

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();