gdb前端与vim一起使用?

Let*_*rus 24 c c++ linux vim gdb

我可以使用什么gdb前端来调试C和C++代码?目前我使用cgdb并对它感到满意.只是想知道那里还有什么?

KOl*_*egA 15

看看pyclewn.正如vim.org上所写:

Pyclewn - Vim的扩展,支持从Vim完全使用gdb.使用断点,监视变量,gdb命令完成等.使用NetBeans接口.

也许开始使用它作为cgdb并不是那么容易,但它很容易使用它.

首先,您需要使用+ netbeans_intg功能和+ python/dyn或+ python3/dyn编译vim例如,您使用python3.像这样配置vim:

./configure --with-features=huge --enable-python3interp
Run Code Online (Sandbox Code Playgroud)

不要忘记安装python头文件(包python3-dev).然后下载 pyclewn-1.7.py3.tar.gz并安装.

您可以使用现场安装手册或使用病原体进行安装.安装病原体:

tar zxvf pyclewn-1.7.py3.tar.gz
vimdir=$HOME/.vim/bundle/pyclewn python3 setup.py install --force --home=$HOME/.vim/local
Run Code Online (Sandbox Code Playgroud)

将行'$ HOME/.vim/local/lib/python/clewn/vim.py:343从'runtime plugin/pyclewn.vim'更改为'runtime bundle/pyclewn/plugin/pyclewn.vim'

将路径$ HOME/.vim/local/bin(或您使用的任何其他路径)添加到PATH.

添加变量

export CLEWNDIR=$HOME/.vim/bundle/pyclewn/macros
Run Code Online (Sandbox Code Playgroud)

您可以在文件$ 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()"'
Run Code Online (Sandbox Code Playgroud)

和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
Run Code Online (Sandbox Code Playgroud)

所以,要开始调试我使用命令:

pclewn my_program arg1 arg2 argN
Run Code Online (Sandbox Code Playgroud)

UPD:您的C++程序可能使用STL容器.要很好地显示它们,请下载dbinit_stl_views-1.03.txt并将此文件重命名为〜/ .gdbinit.在此之后,您可以使用以下命令:

pstring stl_variable
pvector stl_variable
Run Code Online (Sandbox Code Playgroud)

gdb提供的帮助,例如命令'help pmap'.在这里阅读更多

当然,您可以将键映射到光标下的打印字符串,如下所示:

nmap <F1> :exe "C pstring " . expand("<cword>")<CR>
Run Code Online (Sandbox Code Playgroud)


use*_*723 13

谷歌是你的朋友. http://clewn.sourceforge.net/

老实说,我认为你最好坚持使用cgdb.

  • +1我坚持使用gdb.良好的旧基础(很好地防止[通过偶然习惯编程] [http://en.wikipedia.org/wiki/Programming_by_permutation],这是通过平滑的交互式调试鼓励的.减慢步骤让你想到**仔细;根据我的经验,这可以帮助您更快地发现问题) (5认同)
  • 谢谢所有回答的人,我想我会留在cgdb. (2认同)

Dru*_*ker 8

Conque GDB与cgdb非常相似.它是一个终端仿真器,它将vim缓冲区转换为gdb命令行界面.见http://www.vim.org/scripts/script.php?script_id=4582