web-dev-qa-db-ja.com

vimで使用するgdbフロントエンド?

CおよびC++コードをデバッグするためにvimで使用できるgdbフロントエンドは何ですか?現在、私は cgdb を使用しており、満足しています。他に何があるのだろうと思っていましたか?

24
Letholdrus

Googleはあなたの友達です。 http://clewn.sourceforge.net/

正直なところ、 cgdb に固執したほうがいいと思います。

13
user606723

pyclewn を見てください。 vim.orgに書かれているように:

Pyclewn-Vimのgdbの完全な使用をサポートするVimの拡張機能。ブレークポイント、監視変数、gdbコマンド補完などを使用します。NetBeansインターフェースを使用します。

Cgdbとして使い始めるのは簡単ではないかもしれませんが、使いやすいです。

まず、+ netbeans_intg機能と+ python/dynまたは+ python3/dynを使用してvimをコンパイルする必要があります。たとえばpython3を使用します。次のようにvimを設定します。

./configure --with-features=huge --enable-python3interp

pythonヘッダーファイル(パッケージpython3-dev)をインストールすることを忘れないでください。次に ダウンロード pyclewn-1.7.py3.tar.gzをインストールしてください。

site からインストールマニュアルを使用するか、 pathogen でインストールできます。病原体をインストールするには:

tar zxvf pyclewn-1.7.py3.tar.gz
vimdir=$HOME/.vim/bundle/pyclewn python3 setup.py install --force --home=$HOME/.vim/local

行$ HOME/.vim/local/lib/python/clewn/vim.py:343を「runtimeplugin /pyclewn.vim」から「runtimebundle/pyclewn/plugin /pyclewn.vim」に変更します。

パス$ HOME/.vim/local/bin(または使用するその他のパス)をPATHに追加します。

変数を追加

export CLEWNDIR=$HOME/.vim/bundle/pyclewn/macros

ファイル$ HOME/.vim/bundle/pyclewn/macros /.pyclewn_keys.gdbでキーマッピングを変更できます

簡単にpyclewnを実行するために、次のbashファイルを使用します:$ HOME/.vim/local/bin/pclewn

#!/bin/bash
pyclewn --gdb="async" --args="--args $@" --cargs='-c "runtime misc/pclewn.vim" -c "call PyClewnPre()"'

およびvimスクリプト$ HOME/.vim/misc/pclewn.vim

function! PyClewnInit()
    C tbreak main
    Cmapkeys
    unmap <CR>
endfunction

function! PyClewnPre()
    map <CR> :call PyClewnInit()<CR>
    0put ='Press <Enter> to start'
    setlocal buftype=nofile
endfunction

したがって、デバッグを開始するには、次のコマンドを使用します。

pclewn my_program arg1 arg2 argN

UPD:C++プログラムはおそらくSTLコンテナを使用しています。それらをうまく表示するには、 dbinit_stl_views-1.03.txt をダウンロードし、このファイルの名前を〜/ .gdbinitに変更します。この後、次のようなコマンドを使用できます。

pstring stl_variable
pvector stl_variable

コマンド 'help pmap'など、gdbから利用できるヘルプ。続きを読む ここ

そしてもちろん、次のようにキーをマップしてカーソルの下の文字列を印刷することができます。

nmap <F1> :exe "C pstring " . expand("<cword>")<CR>
15
KOlegA

ConqueGDBはcgdbと非常によく似ています。これは、vimバッファをgdbコマンドラインインターフェイスに変換するターミナルエミュレータです。 http://www.vim.org/scripts/script.php?script_id=4582 を参照してください

8
Druesukker