VIM+GDB linux c/c++ 的编程利器
VIM+GDB linux c/c++ 的编程利器
http://blog.csdn.net/jackyvan/archive/2010/01/15/5193693.aspx
其实VIM也能把编译 调试集成在一起,像是一个IDE一样。
首先现在VIM的源码,因为要集成调试环境的话需要重新编译VIM才行,所以我们不如重新安装一个。
VIM的现在地址:
http://www.vim.org/sources.php
然后下载VIMGDB,这是vim的集成调试环境的一个重要插件程序。
地址:http://sourceforge.net/projects/clewn/files/vimGdb/ ,选择对应的VIM版本下载。
把下载下来的文件都放到 ~/install/中
然后:
cd ~/install/
tar xjf vim-7.2.tar.bz2
tar xzf vimgdb72-1.14.tar.gz
patch -d vim72 --backup -p0 < vimgdb/vim72.diff
这样就解压出vim和vimgdb,并对vim的configure文件自动做了调整
接下来:
cd ~/install/vim72
make
make install
就装好vim了。
然后:
cd ~/install/vimgdb
mkdir ~/.vim
tar zxf vimgdb_runtime.tgz -C ~/.vim/
这样就装好了,接下来启动vim
先把vimgdb的帮助导进去
:helptags ~/.vim/doc
这样就可以
:help vimgdb 来看vimgdb的帮助了
这样 我们先打开一个c程序
并且为这个程序写好一个Makefile文件
用
:make
来编译这个源码。
根据生成的报错信息 我们可以来修改程序,敲回车会跳转到第一个错误,用cnext 会到下一个错误,cprevious 到上一个错误,cc n 跳到第n个错误,cc 显示当前错误的详细信息
接下来我们要试一下vimgdb的调试功能了。
首先:
:run macros/gdb_mappings.vim
来加载vimgdb映射的键
这个时候我们可以用
:help gdb-mapping 来查看加载键的用法
用<F7> 可以启用/关闭加载的键
现在,按空格键,就会在当前窗口下方打开一个小窗口,这就是vimgdb的命令窗口,可以在里面输入gdb命令。现在,我们在这个窗口中输入”gdb “,按回车后,command-line窗口自动关闭,而在当前窗口上方又打开一个窗口,这个窗口是gdb输出窗口。现在vim的窗口布局如下(我又按空格打开了command-line窗口)
然后在这个窗口里
file test
打开要调试的程序
然后在源码文件里可以CTRL+B 来设置断点,R 来运行程序,S 单步执行 其他命令可以用:help gdb-mapping 来查看
我们可以用
:bel 20vsplit gdb-variables 在右侧打开一个小窗口来显示要跟踪的变量的值
在源码文件里,用 "v " (表示visual模式) 选定要跟踪的变量,然后CTRL+P 把变量加
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
Boss说,要看OpenGL,看了快一个月,总算出了个像样的东西,用C写了个3D迷宫,
虽然只有350行
代码,不过边学边写,足足写了一周时间,还是小有成就感的,活活活!
&n ......
对于序列求和的程序大家不会陌生,而我今天看到的这个程序个人觉得比较好,所以贴上来共享一下。
要求:输入类似于87 98 67 56 0的任意序列,但是以零结尾。然后输出序列的和。
程序如下 :
/********************************************
* Name : sum.c
* Purpose : sum
* Author : zimo
  ......
前面一篇我们介绍了结构体,这篇终于能够介绍函数了。为什么这么说呢?因为函数非常重要。就这么简单。嘿嘿!之所以在这时才讲函数,是因为本篇将联系到前面的每一篇,这样函数才能体现的透彻。那我们就迫不及待的切入正题。
从第一篇Helloworld开始到现在,就没有脱离函数。那就是我们的main函数。main函数也是一个普通的 ......