在uClinux下利用GDB進行調試

來源:互聯網
上載者:User

環境:Blackfin uClinux(版本:buildroot-2012R1-RC6-BF60X)

Linux主機:ubuntu 10.04.4

可以通過串口和網路兩種方式進行調試,以下樣本以網路調試為例。

1. 在Linux主機編譯應用程式:bfin-uclinux-gcc–g –o0 –o a.out test.c

    -g :在可執行檔中加入調試資訊,才能使GDB正常工作;

    -o0 :將最佳化等級設定為0,以便於調試。

   

2. 在超級終端上將編譯好的可執行檔a.out拷貝到uClinux根目錄下:

        ftpget -u joey -p 123456 192.168.1.159 a.out/mnt/hgfs/uClinux-code/ABC3000_src/a.out

    賦予a.out可執行檔許可權:

        chmod a+x a.out

    在uClinux下啟動gdbserver:

        gdbserver localhost:3456 a.out(3456是連接埠,只要不與其它應用衝突,可改成任意連接埠)

3. 在Linux主機下面執行:bfin-uclinux-gdb a.out.gdb(a.out.gdb在編譯時間產生)

   

       當GDB在主機下運行起來後,執行以下命令串連目標系統,即uClinux:

           target remote 192.168.1.122:3456(192.168.1.122是uClinux的IP地址)

   

        到了這一步,就可以進行調試了:

   

--------------------------------------------------------------------------------------------------------

以下表格是常用的GDB命令:

命令

效果

開始與停止

 

quit

退出GDB

run

運行程式(後面可以開命令列參數)

kill

停止程式

斷點

 

break sum

在函數sum的入口處設定斷點

break *0x80483c3

在地址0x80483c3處設定斷點

delete 1

刪除第1個斷點

delete

刪除所有斷點

執行

 

stepi

執行一條指令(逐語句,會進入函數)

stepi n

執行n條指令(逐語句)

nexti

類似於stepi(逐過程,不會進入函數)

continue

繼續執行

finish

運行至當前函數返回

檢查代碼

 

disas

反組譯碼當前函數

disas sum

反組譯碼函數sum

disas 0x80483b7

反組譯碼地址0x80483b7附近的代碼

disas 0x80483b7 0x80483c7

反組譯碼兩地址之間的代碼

print /x $pc

以十六進位形式列印程式計數器

list

列出原始碼

list n

列出第n行附近的原始碼

檢查資料

 

print $r0

以十進位列印r0的值

print /x $r0

以十六進位列印r0的值

print /t $r0

以二進位列印r0的值

print 0x100

列印0x100的十進位形式

print /x 1024

列印1024的十六進位形式

print /t 1024

列印1024的二進位形式

print /x ($pc+8)

以十六進位形式列印寄存器pc內容+8

print *(int *) 0xbffff890

列印地址0xbfffff890中的整數

print *(int *) ($pc +8)

列印地址%pc+8中的整數

有用的資訊

 

info frame

當前棧楨的資訊

info registers

所有寄存器的資訊

help

擷取GDB的資訊

 

更詳細的內容請見:http://docs.blackfin.uclinux.org/doku.php?id=debuggers&s[]=gdb

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.