ARM Linux應用程式除錯環境

2021-06-22 03:29:19 字數 1983 閱讀 5265

建立arm+linux應用程式除錯環境

gdb+gdbserver+insight環境的搭建

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加入含有除錯資訊的可執行檔案。

[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 軟體包)

$ 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遠端除錯參見:

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

建立ARM Linux應用程式除錯環境

建立 arm linux應用程式 除錯環境 gdb gdbserver insight環境的搭建 配置安裝gdb gdbser tar jxvf gdb 6.6.tar.bz2 cd x gdb configure target arm linux prefix usr local arm gdb ...

ARM Linux應用程式not found 問題

今天,移植 openssh portable 到imx6ul板子上,交叉編譯ok。放板子上執行,除錯。root imx6ulevk mnt nfs ssh ssh keygen sh ssh keygen not found root imx6ulevk mnt nfs ssh scp sh scp...

除錯多執行緒應用程式

對於多執行緒應用程式的除錯 各開發工具都有良好的支援,使用廣泛的為windows下vs及unix下的 ms對vs除錯多執行緒程式給出了詳細的幫助手冊,可以在msdn中搜尋 setthreadname 設定執行緒名稱 中找到相關頂級主題 除錯多執行緒應用程式 ms help 以下文字摘自msdn 執行...