当前位置:   article > 正文

gcc编译器与gdb调试器_gcc 9.3 gdb

gcc 9.3 gdb

gcc编译器与gdb调试器

编译过程可分为四个阶段:

  1. 预处理(Pre-Processing)
  2. 编译(Compiling)
  3. 汇编(Assembling)
  4. 链接(Linking)

gcc文件类型约定规则:

在这里插入图片描述

gcc常用选项:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-97gPgoDa-1590075237154)(C:\Users\HUAWEI\Desktop\image-20200521211226703.png)]

常用的有 -o -c -S -E -g -O

**预处理:*在预处理阶段,gcc把预处理命令扫描处理完毕,输入C语言的源文件,通常为.c

它们通常带有.h之类的头文件的包含文件,这个阶段主要处理源文件中的#ifdef#include和#define等预处理命令,该阶段会生成一个中间文件*.i,可以使用-E生成中间文件.i

gcc -E hello.c -o hello.i
  • 1

**编译:*gcc把预处理后的结果编译成汇编或者目标模块,输入的中间文件 * .i,编译后生成汇编语言文件.s

gcc -S hello.i -o hello.s
  • 1

**汇编:*汇编阶段,编译器把编译出来的结果汇编成具体CPU上的目标代码模块,输入汇编文件 * .s,输出机器语言.o

gcc -c hello.s -o hello.o
  • 1

**链接:*在链接阶段把多个目标代码模块连接成一个大的目标模块,输入机器代码文件, .o,汇集成一个可执行的二进制代码文件。

gcc hello.o -o hello
  • 1

优化gcc

编译器通过分析源代码,找出其中尚未达到最优的部分,然后对其进行重新组合,改善程序的执行性能。

gcc -On
  • 1

gcc -O2 常用

gcc -O0 不进行优化

调试选项

默认情况下,gcc在编译时不会建个调试符号插入到生成的二进制代码中,如果需要生成调试符号信息,可以使用gcc -g选项,一般不加调试选项,否则会使代码增大。

gdb调试器

功能表:

  1. 设置断点
  2. 单步执行程序,便于调试
  3. 查看程序中变量值的变化
  4. 动态改变程序的执行环境
  5. 分析崩溃程序产生的core文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jKCuZJDT-1590075237155)(C:\Users\HUAWEI\Desktop\image-20200521220135777.png)]

设置断点
break 4

break main
  • 1
  • 2
  • 3

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LO9yyYUk-1590075237157)(C:\Users\HUAWEI\Desktop\image-20200521222933368.png)]

单步执行程序
step 步入
next 下一行
  • 1
  • 2
查看运行时的数据 print display
print <expr>
print/<f> <expr>
  • 1
  • 2
display 可以设置一些自动显示的变量,当程序停住时,或是在单步跟踪时,这些变量会自动显示,相关的gdb命令是display,格式如下
display<expr>
display/<fmt><expr>
display/<fmt><addr>
  • 1
  • 2
  • 3
  • 4

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ncQF1CxU-1590075237158)(C:\Users\HUAWEI\Desktop\image-20200521224510964.png)]

查看源程序

1、显示源代码

gdb可以打印出所调试程序的源代码,编译时一定要加上-g参数,用list来显示源代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HvwCPhqs-1590075237159)(C:\Users\HUAWEI\Desktop\image-20200521231148390.png)]

2、源代码内存

info line命令查看源代码在内存中的地址

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/1019532
推荐阅读
相关标签
  

闽ICP备14008679号