「Linux基础开发工具」gcc和gdb

在这里插入图片描述


📄前言

在学习编程的路途中,你是否有了解过自己使用的编译器呢,这里说的编译器指的可不是vscode或vs2022这样的ide,如果你还没有了解过编译器,本文将为你介绍编译器中最著名的gcc(???我在写什么)

gcc

gcc的介绍

gcc是linux下的一款开源的编译器软件,全程GNU Compiler Collection,可用于编译多种编程语言,包含C++、C、Java等。

gcc的编译过程

gcc的编译分为4个过程,分别是:

  • 预处理:将头文件进行展开包含,取注释等操作
gcc -E test.c -o test.i
  • 编译:检查代码是否规范,并生成汇编代码。
gcc -S  test.i -o test.s
  • 汇编:将汇编代码生成为二进制文件
gcc -c test.s -o test.o
  • 链接:将二进制文件与使用的库所连接。
gcc test.o -o test

gcc的部分参数

参数意义
-E预处理文件
-S编译到汇编语言不进行汇编和链接
-c编译到目标代码
-o文件输出到 文件
-static此选项对生成的文件采用静态链接
-g生成调试信息。GNU 调试器可利用该信息
-shared此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库
O0~O3编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-w不生成任何警告信息
-Wall生成所有警告信息

gdb调试器

gdb的背景

gdb全程是THE GNU Project Debugger,可用于调试多种编程语言,如C++/C,java,python等。

程序的发布方式

程序的发布方式有两种,分别是debug模式和release模式。

  • release模式:生成产品用户使用的程序,也就是我们日常使用的程序
  • debug模式:生成带有调试信息的程序,大小比release生成的程序大,可用gdb进行调试

gdb的常用参数

参数作用
list/l 行号显示代码
list/l 函数显示函数的代码
r/run运行程序
n/next单步执行
b/break设置断点
finish执行到当前函数返回,然后停下来等待命令
p/print 变量打印变量值
c/continue单步进入
info/i breakpoints查看设置哪些断点
display 变量名跟踪查看一个变量,每次停下来都显示它的值
until 行号跳转至行号位置

📜博客主页:主页
📫我的专栏:C++
📱我的github:github

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值