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

2021-04-24 21:59:42 字數 2790 閱讀 1135

建立

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 –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> ./gdbserverhost: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

軟體包)

版本為:

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

注意:在第一次編譯的時候老是出現問題,最後發現自己在裝

redhat9.0

的時候為了節省磁碟空間沒有安裝

gtk軟體包,所以編譯的時候會出錯。但是在裝了之後,再次編譯

insight-6.8.tar.bz2

版本,出現了

x引數未初始化的錯誤。然後重新換成

insight-6.6.tar.bz2

版本,編譯成功,安裝. 關於

gdb遠端除錯參見:

剩下需要解決,就是

busybox

在minicom

下如何終止程式的執行。

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...

ARM Linux應用程式除錯環境

建立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 ...

建立Lapis應用程式

如果您尚未閱讀,請閱讀入門指南,了解有關建立新專案骨架的資訊以及openresty,nginx配置和lapis命令的詳細資訊。您可以在當前目錄中通過執行以下命令啟動乙個新的lua專案 lapis new lualocal lapis require lapis return welcome to l...