Vim与GCC和gdb完美组合
一、vim
vim修改一下配置文件后,如果你稍微会点vim的命令使用,那可比一般的编辑器好用啊,如果一点不会vim的命令使用,就跟一般编辑器一样使用。
打开etc/vim/vimrc文件
这里的引号是注释的意思。
去掉引号就可以了,我说明一下某些set的意思,其他的可以自己网上搜搜是啥意思,其实后面英文有注释的。如果自己的配置文件里面没有,可以手动添加。
set mouse=a 在终端中可以使用鼠标
set ignorecase 查找时忽略大小写
set nu 自动添加行号
set ai 自动缩进
set smartindent 智能对齐
set encoding=cp936 设置当前字符编码为windows简体中文
set tabstop=4 设置TAB键为4个空格
按下面我修改的一些就可以很利索的使用vim:
编辑.c文件的效果是:
二、GCC
gcc方面的资料网上应该一大堆http://blog.csdn.net/yyaong_520/article/details/6766820
一般情况下,我只用一个
-o的命令:
还有一个-g的命令:指示编译程序在目标代码中加入供调试程序gdb使用的附加信息。在使用gdb调试的时候,最好加上这个选项。
三、gdb
我习惯以一个可执行程序作为gdb的参数启动gdb
gdb first(first问gcc的输出结果)
(注意,gcc加了-g选项)
下面说几个调试时常用到的几个选项。
list 显示源文件:
list 没有参数,显示当前行之后或周围的10多行
list start,end 显示从行号start到end之间的代码行。
print 查看运行时的数据
print i 显示当前变量i的值
print &i 显示变量i的存放地址
print array@5 显示从array(数组名)开始的5个值
print array[2]@3 显示从array第二个元素开始的3个数组元素的值
whatis i 显示变量i的数据类型
设置断点 break
break linenum 在当前文件指定行linenum处设置断点
break function 在当前文件函数function的入口处设置断点
显示断点 info
info breakpoints/break/watchpoints [num]
单步跟踪
step [N] 如果遇到函数调用,并且该函数编译时有调试信息,则会进入该函数内执行。
next [N] 遇到函数调用时,执行整个函数。
连续执行
continue 从当前行开始,连续执行到下一个断点处,或者到达该程序结束。命令中可以给出一个数字N,忽略其后N-1次断点
运行程序 run
另外几个:clear(清除所有已定义的断点),delete(删除所有断点,后面可给出断点号码,多个断点用空格分开),disable(停用指定断点,停用多个则用空格分开),enable(激活被停用的断点,各断点号码用空格分开)
我的博客中有个“gdb的简单使用”
最新文章
- JavaScript break跳出多重循环
- 配置VS代码生成工具ReSharper快捷键
- OC语言-04-OC语言-核心语法
- Java Hour 53 HQL
- web前端相关的书籍
- MFC原创:三层架构01(人事管理系统)DAL
- IIS Hang Troubleshoot
- Java - 反射机制(Reflection)
- js获取当前url参数的两方式
- TCP/IP笔记 二.网络层(1)
- Web API设计
- 谈谈android反编译和防止反编译的方法(转)
- js中常用的Math方法总结
- Linux编程之从零开始搭建RPC分布式系统
- 我的Markdown的利器——Markdown Here、有道云笔记、iPic
- nginx接入let's encrypt
- 【面试题】java面试题整理(有空再贴答案)
- Vue-嵌套路由
- wordpress去掉<;link rel=&#39;dns-prefetch&#39; href=&#39;//s.w.org&#39; />;
- linux设置代理
热门文章
- mssql查询某个值存在某个表里的哪个字段的值里面
- 黄聪:Discuz!X3.2 如何配置超级版主或者某些管理员,允许管理用户组或者权限
- (C/C++) Interview in English. - Memory Allocation/Deallocation.
- jquery.cookie.js存与取以及过期时间设置
- PLSQL_Oracle物化视图Material View的基本概念和用法 (概念)
- 转:谷歌大脑科学家 Caffe缔造者 贾扬清 微信讲座完整版
- LPC1768之ISP
- 后台接受ajax传递值的实例代码
- Python标准库12 数学与随机数 (math包,random包)
- c#程序中使用";like“查询access数据库语句的问题