当前位置: 首页 > news >正文

【vim文本编辑器gcc编译器gdb调试器】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、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调试器的使用。

http://www.lryc.cn/news/476850.html

相关文章:

  • 解决使用Golang的email库发送qq邮件报错short response,错误类型为textproto.ProtocolError
  • 为什么说高级工程师研究的不仅是器件的稳态,模拟器件的开关过程
  • Matlab实现白鲸优化算法(BWO)求解路径规划问题
  • SQLserver索引的优化和使用
  • Linux 安装nacos
  • 水仙花判断
  • 在VS中安装chatGPT
  • 算法笔记:Day-09(初始动态规划)
  • “探索未来医疗:生成式人工智能在医疗领域的革命性应用“
  • 数字IC后端实现Innovus 时钟树综合(Clock Tree Synthesis)典型案例
  • Matlab应用制作入门
  • 什么是声明式编程什么是函数式编程,打比方说明
  • SpringBoot+Shiro权限管理
  • 前端面试题22 | 什么是跨域问题?怎么解决?
  • HarmonyOS Next星河版笔记--界面开发(3)
  • 科研绘图系列:R语言组合连线图和箱线图(linechart+boxplot)
  • 对象的接口与设计模式在其中的作用
  • 如何自学机器学习?
  • python中应该使用while 1吗?按位运算符可以代替逻辑运算符使用吗?
  • 线程ID和线程库
  • 使用AWS Lambda构建无服务器应用程序
  • 响应式网页设计案例
  • 麦麦Docker笔记(一)
  • 【设计模式系列】总览
  • P11118 [ROI 2024 Day 2] 无人机比赛 题解
  • 时序数据库是什么:概念、特点与分类简析
  • 大数据上岗.入职.就业面试题
  • 2016年7月和8月NASA的气候成像(ATom)-1飞行活动期间测量的黑碳(BC)质量混合比(单位为ng BC / kg空气)
  • python opencv3
  • git原理与上传