概览
Linux上C程序的编译和调试工具,包括以下内容:
1. Linux操作系统及其常用命令
2. 编译工具gcc的基本用法
3. 使用gdb进行程序调试
环境与工件
1.个人电脑
2. ubuntui
3. gcc
4. gdb
创建用户:
- 首先切换为超级用户
$sudo su
如果出现Authentication failure的情况,则可以用`sudo passwd root`来给root重设密码:
- 参考以下命令创建新用户, 设置新建用户的密码,注意:只有设置了密码才能激活用户,否则无法以该用户身份登录
#adduser ***
- 注销当前用户,并以新建的用户身份登录,登录后运行 $ whoami,并进行截图;
新建用户主目录下创建子目录:
gdbdebug, 并进入gdbdebug 子目录。将过程和结果截图。(10分)
使用vi编辑以下两个文件并编译和运行,截图(30分)
创建空文件
$ touch reverse.h
$ touch reverse.c
-
编辑reverse.h
用vi进入编辑reverse.h
$ vi reverse.h
进入vi编辑后,按i输入文本
输入:wq存盘退出
查阅文件,保存成功
-
编辑reverse.c
-
编译
按以下步骤编译,如有警告信息,请修改代码至无警告信息
$gcc –Wall reverse.c –o reverse
(编辑时已提前改掉scanf处和*(str+len-i-i)2处错误)
少<string.h>头文件
修改
函数缺少返回值
给函数添加返回值
编译成功
-
运行程序
$./reverse
运行结果错误,代码有误
调试
按照以下过程调试并修正reverse.c,请参考过程截图。(30分)
-
编译时加入调试信息
$gcc -g reverse.c -o reverse1
gdb
-
启用GDB调试
-
键入list
- 查看源代码并根据行号/函数名设置断点(断点位置仅供参不需雷同)
- 观察变量值
并作分析,推测错误(在3.4已经自行修改过错误,所以此时运行结果正确)
-
修正程序并运行
修改代码
重新编译运行成功
结果
成功创建实验目录,并在目录中创建并用vi编辑工具成功编写reverse.h reverse.c两个代码文件。并利用gcc和gbd工具编译调试,最后成功正常运行reverse程序。
总结与体会
通过该实验,我学习熟悉了linux操作系统的基本操作,并学会利用vi编辑工具编写文件,用gcc和gbd编译调试文件,学会了如何在linux系统编译调试运行C语言程序。