linux-arm gdb調試

描述:我的開發板照片
圖片:
參考:
 
環境:虛擬機Fedora12同《Fedora12下搭建Qt CreatorARM開發環境 移植Qt4.6.2Micro2440  
軟件準備:
參照《Fedora12下搭建Qt CreatorARM開發環境 移植Qt4.6.2Micro2440》移植Qt4.6.3Qt Creator升級爲2.0.1,其他一切不變。
網上下載gdb-7.0.tar.gzgoogle一下,忘了在哪下的了。
*環境的搭建與《Fedora12下搭建Qt CreatorARM開發環境 移植Qt4.6.2Micro2440》文章同,這裏不再闡述,對軟件路徑不清楚的請參照上面這篇文章……  

1、將下載的gdb-7.0.tar.gz減壓到一個目錄下,如/root/tmp/gdb-7.0  
打開終端命令行,進入/root/tmp/gdb-7.0目錄,執行命令  
#./configure --target=arm-linux --prefix=/usr/local/gdb-arm –v
#make
#make install 
我在這裏沒有遇到錯誤,編譯完畢gdb會被安裝到/usr/local/gdb-arm
2、編譯gdbserver(參照/root/tmp/gdb-7.0/gdb/gdbserver目錄下README文件)
進入/root/tmp/gdb-7.0/gdb/gdbserver目錄
#cd /root/tmp/gdb-7.0/gdb/gdbserver
執行下面命令
#export PATH=$PATH:/usr/local/gdb-arm
#export CC=/opt/toolchains/arm920t-eabi/bin/arm-linux-gcc
#./configure --target=arm-linux --host=arm-linux
#make CC=/opt/toolchains/arm920t-eabi/bin/arm-linux-gcc
編譯完畢將目錄下的gdbserver可執行文件複製到/root/tmp/rootfs_qtopia_qt4/bin目錄下,即我們的NFS啓動根目錄下。放在bin文件夾下是方便我們直接在終端下執行gdbserver命令。
3、調試
我們已textedit這個demos爲例,如果你不知道如何使用Qt Creator編譯程序,請參照上面的那片文章。
這裏我將textedit這個demos複製到了/root/tmp/rootfs_qtopia_qt4/home/plg目錄下。
使用Qt Creator打開工程(雙擊textedit.pro即可)。
3.1、配置工程
點擊左側邊欄按鈕Projects(即那個文件夾圖標的按鈕)在Build Settings配置界面下
設置Edit build configurationQt4.6.3-arm Debug,及編譯環境爲Qt4.6.3arm環境的Debug模式下。
設置Build directory/root/tmp/rootfs_qtopia_qt4/home/plg/textedit,即將textedit後面的那一長串東東(-build-desktop)刪除,其他不變。
切回Edit(點擊那個Edit按鈕),Build工程,視情況Rebuild工程。如配置無誤,編譯過程很順利。我在此未碰到問題。
3.2、啓動調試
編譯完成,通過NFS啓動系統。(這裏我的虛擬機ip192.168.1.1,開發板ip192.168.1.70
3.2.1Minicom下進入/home/plg/textedit目錄,執行命令
#gdbserver 192.168.1.1:2345 textedit -qws &
注:這裏的“&”符號可以避免程序獨佔終端而無法執行其他命令,如果程序僵死,我們也可以使用pskill命令殺死。“192.168.1.1:2345”爲虛擬機的ip地址和用於遠程調試的端口號,這個端口號應設置爲未被佔用的,不然會出錯。“-qws”意思texteditGuiServer的模式啓動,如果有其他Qt4.6.3的程序啓動,這個參數就不需要了(也可以QApplication app(argc, argv,QApplication::GuiServer);設置程序以GuiServer啓動,這樣就不需要-qws參數了),自己試一下就明白了,關於這個問題google吧!
程序正確啓動會在minicom中顯示
Process textedit created; pid = 750
Listening on port 2345
字面意思很好理解的。
3.2.2、切換Qt CreatorDebug模式,點擊工具欄Debug—〉Start Debugging—〉Start and Attach to Remote Application…命令代開Start Debugger窗口
單擊Browse…按鈕設置Debugger爲“/usr/local/gdb-arm/bin/arm-linux-gdb”,即我們前面編輯gdbarm-linux-gdb)的安裝路徑;
單擊Browse…按鈕設置Local executable爲“/root/tmp/rootfs_qtopia_qt4/home/plg/textedit/textedit”,即我們編譯好的textedit例子的可執行文件;
Host and port中鍵入“192.168.1.70:2345”,即我們的開發板ip地址和端口號;
選擇Architecture爲“i386”。
OK!單擊OK按鈕開始調試(別忘了提前設置好斷點),配置無誤至此應該一切順利……
看看minicom應該有一些反饋信息,我的是“gdbserver: error initializing thread_db library: version mismatch between libthread_db and libpthread”,暫時沒有影響我的調試工作,暫不予追究,那位高手知道的話請給予指導,謝謝。
發佈了3 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章