提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、vim
- vim安装
- vim常用快捷键
- vim使用
- vimtutor zh文档
- 二、gcc编译器
- 安装gcc工具
- 编译源代码
- 三、gdb调试器
- gdb安装
- gdb常用指令
- gdb简单上手使用
- gdb的单步调试功能
- 总结
一、vim
vim是vi发展出来的一个文本编辑器,具有代码补全、快速跳转、查找等功能,在linux中被广泛使用。
vim官方网站(https://www.vim.org/)
vim安装
sudo apt-get install vim
vim常用快捷键
vim xxx 进入(正常模式)
i、a、o键 (输入模式)
esc(回到正常模式)
:键 (命令模式)
:wq (保存、退出)
Nodepad可以使用CTRL+F实现查找、替换功能
vim使用
创建工作空间目录workspace/src
在终端中打开上述工作空间目录;
创建.c源码文件vim test.c
按键i 进行编辑
#include <stdio.h>
int main(void)
{
printf("hello world");
return 0;
}
ESC 回到正常模式
:wq 保存、退出
vimtutor zh文档
输入vimtutor zh查看中文文档
里面有详细的vim教学,在练习中记忆并熟练掌握常用操作;
二、gcc编译器
gcc(GNU Compiler Collection)是GNU(GNU’s Not Unix)开源项目的编译器套件。gcc的初衷是为GNU操作系统专门编写的一款编译器,用于编译C代码。现如今已经拓展为可以编译C++、Java、Objective-C等多种编程语言的集合。gcc本身也遵循GPL发行许可证,linux就是基于gcc搭建的编译系统。
gcc官方网站可以参考https://gcc.gnu.org/
安装gcc工具
sudo apt-get install build-essential
查看是否安装成功
gcc -v
编译源代码
使用vim打开前文的test.c文件
vim test.c
gcc -o bin test.c
查看文件列表
ls -la
运行可执行文件
./bin
如果想知道调试信息,可以加上-g的参数
gcc -o bin test.c -g
对比不加-g参数时文件的大小
gcc -o bin test.c
ls -lh
加入-g参数,文件占据的存储空间会变大
gcc -o bin test.c -g
ls -la
生成汇编
gcc -o bin test.c -s
生成.o文件
gcc -o bin test.c -c
加入定义的宏
gcc -o bin test.c -D
三、gdb调试器
gdb是GNU Project Debugger的简称,也是是GNU(GNU’s Not Unix)开源项目中遵循GPL发行许可证的free software,
gbd官方网站 https://sourceware.org/gdb/
一般来说GDB主要能提供以下四个方面的帮助:
1.start your program,specifying anything that might affect its behavior指定一些参数
2.make your program stop on specified condition 断电
3.examine what has happened,when your program has stopped分析crash现场
4.change things in your program,so you can experiment with correcting the effects of one bug and go on to learn about another 直接修改程序,查看结果
What Languages does GDB Support? (gdb支持的语言)
GDB supports the following languages (in alphabetical order):
Ada
Assembly
C
C++
D
Fortran
Go
Objective-C
OpenCL
Modula-2
Pascal
Rust
gdb安装
sudo apt-get install gdb
查看gdb版本
gdb --version
gdb常用指令
通过gdb调试正在运行的程序:
ps -A (查看进程列表)
gdb -p 进程号
程序挂掉后调试:
gdb xxx core
gdb简单上手使用
工作空间目录workspace/src
cd /home/workspace/src
vim test.cd
编译(-g参数是为了输出调试信息)
gcc -o bin test.c -g
调试可执行文件:
gdb ./bin
按q可退出gdb调试界面
去掉gdb调试界面的版本等信息(便于观察调试界面):
gdb ./bin -q
在gdb运行界面输入run即可运行程序;
查看对应行号的代码:
在gdb运行界面输入list 代码的行号
这里再vim文本编辑界面显示行号: 输入:set nu 回车即可显示代码行号
清空gdb的历史输出信息窗口
!clear
gdb的单步调试功能
设置断点:在gdb输入break 代码的行号,比如break 8;
输入run(或者r),代码会停止在设定的断点位置;
在gbd界面单步执行:next 回车;
在gbd界面继续执行:c 回车,即continue;
在gbd界面查看变量信息:gdb界面输入print 变量名称
!clear
在gbd界面修改变量的值:
run
set var 变量名称=新的数值
清除断点
info break (展示断点信息)
delete 断点序号,例如delete 1
通过访问地址的形式打印变量
例如:正在运行的源码程序中b=20
gdb中输入print &b,得到一个地址,
gdb中输入x 地址,即可得到变量的值(以十六进制数展现)
gdb x /d 地址(以十进制展现)
查看当前寄存器的值:
info register
查看当前进程的信息:
info thread
切换到对应的进程
thread 进程号,比如thread 1
将C语言切换成汇编语言
disass
总结
简单讲解了vim、gcc编译器、gdb调试器的使用。