Debian系统下使用gcc和gdb执行调试C语言程序

发布于 2020-12-21  19 次阅读


【实验名称】

在Debian中使用gcc命令执行C语言程序

【实验目的】

  1. 熟练掌握Linux的常用命令
  2. 掌握Linux下文本编辑器vim的使用手法
  3. 熟练掌握Linux下使用gcc命令

【实验环境描述】

VirtualBox中安装32位Debian虚拟机

更换Debian虚拟机的apt源并且配置ssh

在Debian中安装软件包build-essential、vim、gdb

【实验过程】

一、新建一个Helloworld.c文件

1、使用Ctrl+Alt+打开终端,在终端中输入vim Helloworld.c创建一个文件名为hello.c的源文件。

image 72

2、输入i进入insert模式(即编辑插入模式),写入下列代码:

#include<stdio.h>

int main(void)

{

   printf(“Hello world!\n”);

   return 0;

}

然后按ESC回到normal模式,输入:wq保存并且退出

image 73

二、使用gcc命令对Helloworld.c文件进行处理得到可执行文件

1、预处理文件Helloworld.c

预处理:预编译器cpp把源代码文件和相关的头文件 (如stdio.h ) 预编译成一个 .i 的预处理后的C文件

操作方法:在终端中输入命令:gcc -E Helloworld.i -o Helloworld.c

image 75

结果:得到中间目标文件Helloworld.i

image 76

2、编译

编译:编译器gcc把预处理完的文件进行词法分析、语法分析、语义分析及优化后生成相应的汇编代码文件。

操作方法:在终端输入命令:gcc -S Helloworld.i -o Helloworld.s

结果:得到中间目标文件Helloworld.s

image 77

3、汇编

汇编:汇编器as把汇编代码转变成中间目标文件

操作方法:在终端输入命令:gcc -c Helloworld.s -o Helloworld.o

结果:得到中间目标文件 Helloworld.o

image 78

4、链接

链接:链接器ld把中间目标文件和相应的库一起链接成为可执行文件,linux是elf格式,windows上是pe格式

操作方法:gcc Helloworld.o -o Helloworld

结果:产生一个Helloworld的可执行文件

image 79

5、运行

操作方法:输入./Helloworld

结果:输出Hello world!

image 80

三、直接使用gcc -g -o

1、在终端执行命令:gcc -g Helloworld.c -o Helloworld

image 81

结果:产生一个Helloworld的可执行文件

image 82

运行Helloworld的可执行文件

2、执行命令:gdb Helloworld

结果:

image 83

3、使用gdb命令

输入命令:l

结果:从第一行开始列出源码

image 84

输入命令:r

结果:执行程序如下

image 85

执行命令:q

结果:退出gdb

image 86

【思考题】

通过实验过程中的二,每次使用gcc生成目标文件的时候,使用命令:

Vim +名称 即可打开相应的中间文件,通过查询gcc和vim的相关命令发现的该途径。

例如:

使用命令:vim Helloworld.i

结果:

image 87

平平无奇的在校大学生