VIM+GDB linux c/c++ 的编程利器
其实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
把变量加到右边的监视窗口。
还以在gdb的命令窗口 用
createvar *r
来创建新的监视变
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
Linux下的磁盘碎片整理
网上有些帖子说XFS不用做碎片整理,其实是错误的。XFS用延迟写入等技术确实可以减少碎片的出现,但是如果服务器用了几年,并且文件操作比较频繁,还是会出现碎片的,应该整理。注意:在Debian中XFS相关命令在xfsprogs包中,而xfs_fsr命令是在xfsdump包中的。所以要用xfs_fsr整理碎片,记得安装xfsdu ......
#ifdef XP_UNIX
/*
* Set up the plugin function table that Netscape will use to
* call us. Netscape needs to know about our version and size
* and have a UniversalProcPointer for every function we
* implement.
*/
pluginFuncs->version = (NP_VERSION_MAJOR << 8) + NP_VERSION_MINOR;
......
sudo apt-get build-dep firefox
若出现下面的错误:
不能满足软件包 firefox 所要求的构建依赖关系
请将 /etc/apt/sources.list 改为默认的源 有就是 装完系统后自带的:
#deb cdrom:[Ubuntu 9.04 _Jaunty Jackalope_ - Release i386 (20090421.3)]/ jaunty main restricted
# See http://help.ubuntu ......
转自:使用C++对java的classloader进行模拟
一直以来,觉得java的classloader很不错的,做产品的话,可以将基本的做下来后,将扩展通过classloader的方式来做,将更新的补
丁使用classloader来做,在使用java的网络游戏中,可以将扩展通过classloader的机制,实现动态的更新,省的每次更新要重新下载
客户端,在手机上可 ......