vim,gdb,makefile

vim练级

很棒的文章:https://www.jianshu.com/p/2f9ab65776d4

补充实用技巧:

多行注释:ctr + v 进入块可视化 再按 shift + i 输入 // + 两下esc,取消注释行选中//按 d

全选替换:以下命令将文中所有的字符串idiots替换成managers:
:1,$s/idiots/manages/g

垂直分屏:冒号模式下vsp +file, ctr +w可以切换分屏

格式化c文件:gg=G
补全代码:
Ctrl-E保持现有的输入文字并退出补全;Ctrl-Y选择补全项并退出补全;Ctrl-P和Ctrl-N选择项目,选中的项会被直接补全到光标所在位置,无需按回车。

gdb

  1. gcc -g 需要调试的文件 #加入调试信息

  2. gdb 可执行程序

list——显示代码

  • l(简写) 查看main前后10行
  • l 函数名
  • l 行号

break——断点

  • b 行号 [if 条件]
  • b 函数名
  • delete 断点号

查看

  • i b 查看断点

运行

  • run 从开始运行到断点
  • next 单步调试
  • step 单步调试,遇到函数进入
  • continue 当前运行到下一个断点

查看变量值

  • print 变量名
  • display 跟踪显示变量
  • x 查看内存
  • whatis 变量名,查看类型

查看内存

x/nfu 变量地址

n是查看内存单元个数

u是一个内存单元的大小,可用b字节,h双字,w四字节

f显示的格式,常用c显示字符,x十六进制

检查段错误的方法

  1. ulimit -c unlimited #将内核文件大小取消限制
  2. file core文件 #查看哪个可执行文件出错了
  3. gdb 可执行文件 core文件

makefile


  1. 画出文件的依赖关系
  2. 写makefile
  3. 简化makefile
  4. make命令生成项目

最笨的版本
这里写图片描述

简化规则:
1. $^代表所有依赖文件
2. $@代表目标文件
3. 隐式规则,生成.o文件自动去寻找同名.c文件进行编译,所以.o的目标都不用写。(%.o:%.c)
4. 可以创建变量替换依赖文件($obj)

  • 也可以make + 目标,单独执行一个目标。例 make clean

伪目标:
.PHONY 为目标的语句一定会执行(不一定按顺序),例如

#为了生成多个可执行文件
.PHONY:all
#all目标要无条件执行
all:main hello
main:main.o
    gcc $^ -o $@
hello:hello.o
    gcc$^ -o $@
#所有.o文件依赖于.c文件,属于隐含规则可以不写
%.o:%.c
    gcc -c $^ -o $@
clean:
    rm -rf *.o
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页