• vimgdb + gcc


    vimgdb 安裝在 Ubuntu 12.04

    Step

    1. 先安裝

    sudo apt-get install build-essential

    sudo apt-get build-dep vim-gnome

    2.

    從 http://www.vim.org/sources.php 下載 vim-7.3.tar.bz2 

    從 https://github.com/larrupingpig/vimgdb-for-vim7.3 下載 vimgdb-for-vim7.3 (this patch) 

    tar xjvf vim-7.3.tar.bz2 -C /tmp

    tar xzvf vimgdb-for-vim7.3.tar.gz -C /tmp

    cd /tmp

    patch -p0 < vimgdb-for-vim7.3/vim73.patch

    cd vim73/src

    make

    sudo make install

    cp -rf /tmp/vimgdb-for-vim7.3/vimgdb_runtime/* ~/.vim

    3.此時已安裝好 vimgdb,進入vim輸入:helptags ~/.vim/doc 產生說明文件

    vimgdb的使用,參考這篇

    :run macros/gdb_mappings.vim "[F7] 使vimgdb快捷鍵生效

    :set splitbelow "gdb分割視窗改成在下方出現,預設上方

    :set splitright

    :set previewheight=50

    :vert sp gdb-variables "右方開啟 watch 分割視窗能即時顯示變數的內容,游標上的變數按[v],再按[Ctrl]+[p]加入

    輸入createvar <var>指令,將變數加入watch視窗

    [Space] 叫出cmd-line視窗,輸入gdb指令,啟動gdb

    cd 切換gdb的工作目錄

    file <ExeFile> 開啟要 Debug 的執行檔

    vimgdb常用快捷鍵

    [Ctrl]+[b] 設置中斷點

    [Ctrl]+[e] 清除中斷點

    [Ctrl]+[p] 查看變數內容

    [Ctrl]+[x] 查看指標內容

    [Ctrl]+[n] next

    R (run)

    C (continue)

    S (step)

    Q (quit)

    vim 整合 gcc,參考這篇

    在 vim 中執行 :make 指令會依 makefile 檔進行編譯,若沒有 makefile 檔的話,就依 set makeprg 設定決定。

    編譯時,程式碼有錯誤,可以叫出 Quickfix 視窗提示訊息。

    :copen 開啟 Quickfix 視窗 = :cw

    :cclose 關閉 Quickfix 視窗

    :cp 跳到一個錯誤

    :cn 跳到一個錯誤

    :cl 列出所有的編譯錯誤

    :cc 提示訊息在 vim 下方的狀態列

    :col 跳到前一個 Quickfix List 視窗

    :cnew 跳到後一個 Quickfix List 視窗

    依附檔名自動選擇Compiler

    ~/.vimrc

    autocmd FileType c set makeprg=gcc -Wall % -o%.out "表示空格;%表示目前的檔名

    ~/.vim/ftplugin/c.vim

    set makeprg=gcc -Wall % -o%.out

    設定編譯程式快捷鍵

    map <F5> :make<CR>:!./a.out<CR> "設定[F5]快捷鍵為編譯並執行程式,提示訊息會在Quickfix視窗,不在終端機畫面

    map <F5> :make && ./a.out<CR> "設定[F5]快捷鍵為編譯並執行程式,提示訊息會在終端機畫面,不在Quickfix視窗

    map <F6> :make<CR> "設定[F6]快捷鍵為編譯

    map <F5> :call MakeAndRun()<CR> "編譯後檢查是否有錯誤,再決定是否執行程式

     1 function! HasError(qflist)
     2     for i in a:qflist
     3         if i.valid == 1
     4             return 1
     5         endif
     6     endfor
     7     return 0
     8 endfunction
     9 
    10 function! MakeAndRun()
    11     make
    12     if HasError( getqflist() )
    13         cl
    14     else
    15         !a.out
    16     endif
    17 endfunction
  • 相关阅读:
    修复跨站攻击 php
    nginx 网站目录重写
    centos Linux 统计某个文件夹占用空间大小
    FCKeditor使用方法技术详解
    使用stl超时的问题
    __int64 和long long
    POJ1426 Find The Multiple
    搜索BFS---hdu2717
    memset的用法
    汉诺塔 HDU2064 (递归)注意类型!!longlong
  • 原文地址:https://www.cnblogs.com/yijay/p/3634981.html
Copyright © 2020-2023  润新知