GDB前端使用与vim

gdb front end to use with vim?

本文关键字:vim 前端 GDB      更新时间:2023-10-16

我可以使用什么gdb前端与vim调试C和c++代码?目前我使用cgdb,我对它很满意。我只是想知道外面还有什么?

看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头文件(package 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

修改$HOME/.vim/local/lib/python/clewn/vim.py:343行Vim '到'runtime bundle/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

gdb提供的帮助,例如通过命令' Help pmap'。点击这里阅读更多内容

当然你也可以像这样将键映射到光标下的打印字符串:

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

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

老实说,我认为你最好还是使用cgdb。

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

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

特别是s (step-in)和f(完成函数并返回)是最有用的键绑定。