ARM+Linux應用程序調試環境

建立ARM+Linux應用程序調試環境

 

Gdb+gdbserver+insight環境的搭建

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 用於制定目標環境的編譯

編譯, $ 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時傳遞參數,也可以直接修改gdbserver目錄下的Makefile文件中的環境變量CC)

之後在gdbserver目錄下生成gdbserver可執行文件.

可將它通過nfs拷貝到目標板上運行.

如:mount –t nfs host:/friendly-arm/root /mnt –o ro,nolock

這裏如果沒有加上選項 –o ro,nolock 無法正常mount.

@在目標板上運行

      (1)將要調試的文件和gdbserver放在同一個文件夾下

            vivi> ./gdbserver  host:port  “待調試文件”

(2)在主機段執行 arm-linux-gdb “待調試文件”

    (gdb)target remote client:port     連接客戶機

   注意:(1)在目標機上通過gdbserver調試的程序在gdbserver運行的時候已經運行了,並且其中不包含調試的符號信息,所以要想加入符號信息只能通過host運行的gdb加入含有調試信息的可執行文件。

           (2)剛開始的時候將./gdbserver下載到目標機後不能運行,其主要原因就是所製作的網絡根文件系統缺少libthread_db.so.1庫文件。但是發現lib中並沒有該文件,只有一個鏈接文件,通過file命令查看:

          [root@localhost lib]# file libthread_db.so.1

          Libthread_db.so.1: symbolic link to libthread_db-1.0.so

          發現該鏈接文件鏈接到libthread_db-1.0.so該庫文件,於是將文件libthread_db-1.0.so拷貝到根文件系統,然後改名爲Libthread_db.so.1,之後gdbserver能正常運行了.

 

3.       安裝gdb圖形調試界面insight  (gtk 軟件包)

下載地址:http://sourceware.org/insight/       版本爲:insight-6.6.tar.bz2

$ tar  –jxvf  insight-6.6.tar.bz2

$ cd insight-6.6

配置文件:

$ ./configure --target=arm-linux --enable-sim --prefix=/usr/local/arm/insight

配置選項的解釋同上.

  編譯, $ make

  安裝, $ sudo  make  install

注意:在第一次編譯的時候老是出現問題,最後發現自己在裝RedHat9.0的時候爲了節省磁盤空間沒有安裝 gtk軟件包,所以編譯的時候會出錯。但是在裝了之後,再次編譯insight-6.8.tar.bz2版本,出現了X參數未初始化的錯誤。然後重新換成insight-6.6.tar.bz2版本,編譯成功,安裝.

關於gdb遠程調試參見:http://codex.wordpress.org.cn/GDB_Manual_17_1

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章