在VIM中使用GDB調試 – 使用pyclewn

使用pyclewn需要計算機上安裝有python 2.4(或以上版本)以及gvim 7.0或以上版本。gvim在編譯時需要使能netbeans_intg特性和autocmd特性。

如果上面的條件都已經滿足,到http://sourceforge.net/projects/pyclewn/下載pyclewn,下載後解壓準備安裝。安裝pyclewn很簡單,在我的計算機上,gvim安裝目錄在我的HOME目錄,因此,也把pyclewn安裝在HOME目錄,使用如下命令:

cd /home/easwy/download/pyclewn-0.7/
vimdir=$HOME/.vim python setup.py install --home=$HOME 

在pyclewn的源碼目錄中有一個名爲INSTALL的文件,介紹瞭如何在UNIX以及windows上安裝pyclewn,你可以根據自己的環境決定如何安裝pyclewn。

安裝完pyclewn後,啓動gvim,執行:help pyclewn命令,就可以看到pyclewn的幫助文件,裏面有很多有用的信息。

下面通過一個例子講解一下如何使用pyclewn進行調試。例子中所調試的程序在這裏下載:

首先啓動pyclewn。啓動pyclewn的辦法很簡單,在一個終端中執行下面的命令就可以了:

pyclewn 

pyclewn啓動時,它會啓動一個gvim窗口,我們的調試將在這個gvim窗口中進行。運行pyclewn的終端將做爲gdb的控制終端,所調試程序的輸入輸出都會通過這個終端進行(當然,你也可以在gdb中通過tty命令更改控制終端)。

接下來,我們在pyclewn所打開的gvim窗口中輸入下面的命令,編譯該程序,打開要調試的文件,並在文件中設置斷點:

:cd pyclewn-ex
:make
:e main.c
:Cfile main(這個文件是你 gcc -g -o main main.c後的文件)
:Cbreak 14 

前面三條命令是標準的vim命令,切換到示例程序所在目錄,編譯該程序,並打開文件main.c。後面兩條命令以大寫字母C做爲起始,這是pyclewn自定義的命令,pyclewn將會把字母C後的命令內容傳遞給GDB調試器。所以上面兩條命令相當於在GDB中執行file mainbreak 14,加載factor做爲被調試的程序,並在main.c的第14行設置一個斷點。

在執行pyclewn自定義的C命令時,pyclewn會在gvim中分隔出一個窗口,用於顯示GDB調試器的輸入輸出。

在上面已經設置好斷點了,現在就可以開始調試了。pyclewn已經定義了一些調試相關的鍵映射,我們可以通過下面的命令加載這些鍵映射:

:Cmapkeys 

執行完這條命令,會在clewn_console中打印出所定義的鍵映射,我在此不再贅述。在下面的調試過程中,我也會使用幾個最常用的映射。

我們繼續調試。我在上面已經定義了一個斷點,所以直接按SHIFT-R鍵運行程序。程序運行到斷點後會停下來,然後我們連按三次CTRL-N,執行三條語句,現在切換到控制終端,可以看到程序在等待輸入,我們輸入一個數字,然後按回車。

我們把鼠標移動到變量上,可以看到彈出了一個小氣泡,顯示變量的值爲4,這和我們輸入的數字是一致的。

接下來再按一次CTRL-N向下執行一個語句,然後再按SHIFT-S步進到函數factorial()中,現在gvim會打開文件util/factorial.c。然後用下面的命令,把變量t和i加入到watch窗口中:

:Cdbgvar t
:Cdbgvar i 

上面的命令會創建一個名爲(clewn)_dbgvar的緩衝區,不過此緩衝區並未顯示出來。用下面的命令可以新建一個窗口顯示此緩衝區:

:sb (clewn)_dbgvar 
按一次SHIFT-C使程序運行至結束,我們的調試也就告一段落了。

從上面的調試過程可以看出,使用pyclewn調試很方便。而且,使用pyclewn也可以在windows上進行調試,不過我沒有試過,有興趣的朋友可以試一下。在windows上調試,可能需要使用cygwin中所帶的gdb。

如果覺得pyclewn缺省所設置的鍵映射不能滿足自己的需求,也可以自己定義更多GDB調試鍵映射,方法是把pyclewn發行目錄中的.clewn_keys.gdb拷貝到你的HOME目錄,然後修改此文件定製自己的鍵綁定即可。

cd /home/easwy/download/pyclewn-0.7/
cp runtime/.clewn_keys.gdb $HOME 

要想了解更多關於pyclewn的使用,請閱讀pyclewn的幫助手冊::help pyclewn

發佈了49 篇原創文章 · 獲贊 13 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章