使用clewn調試

來源:互聯網
上載者:User

 

使用clewn調試

雖然最近不經常調試C程式了,但覺得vim總應該有一個和gdb串連的方法才稱得上真正的vim。於是,前一段時間一直再找vim串連gdb的方法,結果在google上找到的全是打vimgdb補丁的,需要重新編譯vim,感覺很不爽。前幾天的到一個高人的啟發,試了一下clewn,經過一個多小時,終於大致搞定了,用著還不錯。鑒於很難找到配置clewn的資料,就把方法發上來了,想在vim裡體驗一下gdb而又不想編譯的朋友可以試一下廢話少說,可以現跳到文章末尾看一下效果圖 把vim分成兩個視窗,上半部分顯示代碼,下半部分顯示觀察變數。C-B設定斷點,R是run,S是step,C-J是添加觀察變數。如果覺得有用的話繼續往下看,沒用請點擊[上一頁] 按鈕clewn的首頁: http://clewn.sourceforge.net/ 各種步驟在其首頁上都有詳細說明 懶得看的往下看: 安裝: 大前提:有gvim,也就是vim-gnome, 還有dgb 首先下載原始碼,到他的首頁上很容易找到,注意下載clewn而不是vimgdb。解壓,進入目錄應該都會吧 然後是老一套

代碼:

./configure make sudo make install

注意,安裝clewn依賴readline 缺少的去新立得裡搜一下,libreadline5-dev 或者直接

代碼:

sudo apt-get install libreadline5-dev

安裝好後把相關的.vim檔案複製到~/.vim下參考:

代碼:

cp /usr/local/share/vim/vimfiles/clewn.vim ~/.vim/plugin/

cp /usr/local/share/vim/vimfiles/doc/clewn.txt ~/.vim/doc/ cp /usr/local/share/vim/vimfiles/macros/clewn_mappings.vim ~/.vim/macros/ cp /usr/local/share/vim/vimfiles/syntax/gdbvar.vim ~/.vim/syntax/

注意:以上路徑僅供參考,具體參照你的路徑 然後就搞定了,寫一段程式測試一下:

代碼:

#include <stdio.h> int main(int argc, char *argv[]) { int i; int s; s=0; for( i=0 ; i<10 ; ++i ) { s=s+1; } }

隨便存一個名字,例如test.c 然後:

代碼:

gcc -g -o test test.c

編譯通過後:

代碼:

clewn -va test.c

然後你會看到終端自動開啟了gdb,同時gvim也開啟了。不要急,在終端(gdb)裡輸入:

代碼:

file test

然後就可以在gvim裡調試了可以不用輸入gdb命令,直接在gvim裡操作很方便例如: 用滑鼠點到你想設定斷點的行(用游標移也可以,不過有時設定斷點的時候會不靈),按下

CTRL+B,不靈的話就多按幾下,就設定好斷點了。然後安SHIFT+r(就是R)就run了。當然,程式會在斷點處停止繼續安SHIFT+s(就是S)就step了。如果想看變數的話就在命令模式下輸入:

代碼:

:split

視窗就拆開了。 然後用滑鼠點中想要觀察的變數(用游標移也可以,不過有時會不靈,汗。),按下CTRL+J,就會在另一個視窗裡看到變數了,而且step的時候會自動更新還會高亮顯示的。不靈的話就多按幾次,再不靈的話就直接在終端(gdb)裡輸入

代碼:

createvar yourvar

其中,yourvar是你想要觀察的變數。下面是預設的快速鍵:摘錄自官方文檔

代碼:

List of default key mappings:

CTRL-Z send an interrupt to GDB and the program it is running

B info breakpoints

L info locals

A info args

S step

I stepi

CTRL-N next: next source line, skipping all function calls

X nexti

F finish

R run

Q quit

C continue

W where

CTRL-U up: go up one frame

CTRL-D down: go down one frame cursor position: ~

CTRL-B set a breakpoint on the line where the cursor is located

CTRL-E clear all breakpoints on the line where the cursor is located

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.