gdb前端与vim一起使用?

时间:2011-07-14 15:04:18

标签: c++ c linux vim gdb

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

4 个答案:

答案 0 :(得分: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

不要忘记安装python头文件(包python3-dev)。 然后download 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

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

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

添加变量

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

gdb提供的帮助,例如命令'help pmap'。阅读更多here

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

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

答案 1 :(得分:13)

Google是你的朋友。 http://clewn.sourceforge.net/

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

答案 2 :(得分:8)

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

答案 3 :(得分:-1)

IMO,gdb TUI是最简单的。您可以在此处查看键绑定列表:http://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html#TUI-Keys

特别是,s(步入式)和f(完成功能和返回)是最有用的键绑定。