码迷,mamicode.com
首页 > 数据库 > 详细

vim文本编辑器的基本操作及gcc、gdb的基本使用方法

时间:2018-03-26 15:59:12      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:文本编辑   调用   ***   printf   ace   最新   错误   链接   依赖   

Vim test.c +24    打开并定位到24行

命令模式

1、编辑模式

         h          向左

         j           向下

         k          向上

         l           向右

i       输入 insert

gg=G  可以首行缩进

yy        拷贝

p         粘贴

R         替换模式

r          替换当前位置,回到命令模式

dd       删除当前行

3dd     删除光标以下3行

u  撤销                 

:行号 转移到对应行

J          将下一行拼接到上一行末尾

$          当前行的行尾

0或^   当前行的行首

w         跳到下一个单词

b         跳到上一个单词

}        跳到下一个空行

{        跳到上一个空行

在{或}上按%可以在两者之间跳跃切换

dw      从光标位置删除到当前单词尾部

db       从光标位置删除到当前单词首部

x          删除一个字符

K或3K        对于系统函数或库函数可以跳转到其帮助手册

         v          可视化(jk操作后 x删除y复制)只能选中行

         ctrl+v          块可视化(可以选择字符)

         /          查找(n下一个N上一个)

         ?单词  查找(N下一个n上一个)

2、末行模式(:)

         :w      保存

         :q      退出

         :set nu  显示行号

         :no nu  取消行号

         :50,59s/旧内容/新内容/g        50-59行的所有旧内容替换成新内容(不要g则替换每行第一个出现的旧内容)

         :%s/旧内容/新内容/g                 全文替换

         :vsp 文件名                                垂直分屏

         :sp 文件名                                  水平分屏

                                   :q                       退出

                                   :r                        将另外一个文件导入到光标所在位置

                                   ctrl+ww            跳到另一屏

 

 

 

gcc –E(预处理)/-S(汇编)/-c(连接)/-v(显示编译过程) 文件名 -o(重命名)

gcc内部调用cc1编译器 as汇编器 collect2链接器

strip 可执行文件名       对代码进行瘦身

ldd 可执行文件              可查看程序用了哪些动态库

 

 

 

 

gdb调试器(gcc 文件名 –o 执行文件名 -g)

list(l) 行号                          显示源代码

break(b) 行号/函数名     加断点

info break(i b)   查看断点信息

run(r)                   执行

next(n)                单步执行,不进入函数

print(p)               打印变量

whatis 变量名       查看变量类型

delete(d) 断点编号          删除断点

b 17 if i==9               在条件等于9的时候设置断点

step(s)                 进入函数调用

finish                         退出函数

breaktrace(bt)   查看函数调用栈

 

 

 

 

处理段错误——会生成一个core文件,里面会显示在第几行出现错误:

  1. gcc –g
  2. ulimit -c unlimited
  3. ./a.out
  4. gdb ./a.out core.****

 

 

makefile

目标:依赖文件

Tab命令

第二种方式

$^    代表所有的依赖文件   $@   代表目标文件

第三种方式

%.o:%.c

         gcc –c $^ -o $@

 

可以在makefile里写clean功能,使用make clean

.PHONY:clean                           使clean保持最新

OBJS=main.o  \

plane.o

clean:

         rm –rf $(OBJS)                  这里的objs是前面定义变量

 

 

 

1、在scanf中”%*c”是读取并丢弃掉该字符,用于读取丢弃换行符

或”(空格)%c”          这个操作可以忽略字符之前的空白符

或“%[^;%*c]” 这个操作可以设置想读取的字符,属于输入格式化(不获取分号,例如数据库)

2、内存缓冲区在以下5种情况时才会将缓冲区中内容输出

         \n

         scanf

         exit

         内核缓冲区满

         fflush(stdout)

3、printf                           输出到屏幕

         fprintf                        输出到文件

         sprint                         输出到数组

 

 

 

 

linux读elf文件

readelf –h(头)/-a(全部)

看elf文件的汇编代码

objdump -dS

vim文本编辑器的基本操作及gcc、gdb的基本使用方法

标签:文本编辑   调用   ***   printf   ace   最新   错误   链接   依赖   

原文地址:https://www.cnblogs.com/xiefei777/p/8650383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!