我可以使用什么gdb前端用于调试C和C ++代码?目前我使用cgdb并对此感到满意。只是想知道那里还有什么?
答案 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(完成功能和返回)是最有用的键绑定。