linux下c程序调试

来源:互联网 发布:校园谈论源码 编辑:程序博客网 时间:2024/05/02 03:05

使用GCC编译器对c程序进行编译。

先用vim写一个简单的c程序 命名为a.c(此次的后缀名如果不是.c的话还需要另一个处理参数,后边会说)

打开终端进入a.c所在目录

1. 首先将代码编译成可执行的文件:

gcc a.c

2. 查看已经编译的文件:

ls

显示 a.c a.out(这里是因为我们没有指定输出文件名,系统默认为a.out)

3. 对文件添加可执行权限,因为linux下默认的文件权限没有x

chmod +x a.out

4. 运行文件

./a.out

值此完成了简单c程序的编译运行过程。

当然也可以指定输出文件名:

gcc a.c  -o my.a

那么此时可运行文件变成了my.a。那么下面运行my.a就可以了

关于GCC的参数:
可以用命令 gcc --help显示出他所有的参数来。

常用的有gcc -v a.c,可以查看编译过程

上面说过如果文件的后缀名不是.c的话,那么gcc不能自动识别是c程序了,该如何做呢?

比如我们的c程序存为a.u,那么输入如下命令让gcc知道他是一个c程序,并且按照c程序去编译运行:

gcc -x 'c' a.u

 

下面介绍使用gdb进行c程序的调试方法:

主要使用gdb 进行下面5 个方面的操作。

A:启动程序:在启动程序时,可以设置程序运行环境。
B: 设置断点:断点就是可以在程序设计时暂停程序运行的标记。程序会在断点处停止,
用户便于查看程序的运行情况。这里的断点可以是行数、程序名称或条件表达式。
A: 查看信息:在断点停止后,可以查看程序的运行信息和显示程序变量的值。
B: 分步运行:可以使程序一个语句一个语句的执行,这时可以及时地查看程序的信息。
C: 改变环境:可以在程序运行时改变程序的运行环境和程序变量。
1. 在程序中加入调试信息
gcc -g -o a.debug a.c
编译a.c 生成a.debug文件,该文件中包含了可供调试的信息。
2. 启动gdb
终端中输入 gdb
3. 加载文件
file a.debug
4. 在gdb中查看代码
ls
按回车可以看后续行
5. 加入断点
break 6   即在第六行加入断点
6. 查看断点
info breakpoint
7. 运行程序
在gdb中输入run
程序会在断点处停下,此时输入next或step将进入下一步,输入continue将到下一个断点。如果需要打印输出某个变量i,
则输入 print i  。 next和step的区别是step会跳入子函数中去,而next直接进入下一行

0 0
原创粉丝点击