描述:我的開發板照片
圖片:
環境:虛擬機器Fedora12同《Fedora12下搭建Qt Creator的arm開發環境 並 移植Qt4.6.2到Micro2440》
軟體準備:
參照《Fedora12下搭建Qt Creator的arm開發環境 並 移植Qt4.6.2到Micro2440》移植Qt4.6.3,Qt Creator升級為2.0.1,其他一切不變。
網上下載gdb-7.0.tar.gz,google一下,忘了在哪下的了。
*環境的搭建與《Fedora12下搭建Qt Creator的arm開發環境 並 移植Qt4.6.2到Micro2440》文章同,這裡不再闡述,對軟體路徑不清楚的請參照上面這篇文章……
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 configuration為Qt4.6.3-arm Debug,及編譯環境為Qt4.6.3的arm環境的Debug模式下。
設定Build directory為/root/tmp/rootfs_qtopia_qt4/home/plg/textedit,即將textedit後面的那一長串東東(-build-desktop)刪除,其他不變。
切回Edit(點擊那個Edit按鈕),Build工程,視情況Rebuild工程。如配置無誤,編譯過程很順利。我在此未碰到問題。
3.2、啟動調試
編譯完成,通過NFS啟動系統。(這裡我的虛擬機器ip為192.168.1.1,開發板ip為192.168.1.70)
3.2.1、Minicom下進入/home/plg/textedit目錄,執行命令
#gdbserver 192.168.1.1:2345 textedit -qws &
註:這裡的“&”符號可以避免程式獨佔終端而無法執行其他命令,如果程式僵死,我們也可以使用ps和kill命令殺死。“192.168.1.1:2345”為虛擬機器的ip地址和用於遠端偵錯的連接埠號碼,這個連接埠號碼應設定為未被佔用的,不然會出錯。“-qws”意思textedit以GuiServer的模式啟動,如果有其他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 Creator為Debug模式,點擊工具列Debug—〉Start Debugging—〉Start and Attach to Remote Application…命令代開Start Debugger視窗
單擊Browse…按鈕設定Debugger為“/usr/local/gdb-arm/bin/arm-linux-gdb”,即我們前面編輯gdb(arm-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”,暫時沒有影響我的調試工作,暫不予追究,那位高手知道的話請給予指導