您的位置:首页 > 运维架构 > Linux

linux下c程序调试

2016-02-17 10:24 453 查看
使用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直接进入下一行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: