第3章从HelloLinux程序开始
;掌握gcc工具的使用方法。
掌握gdb工具的使用方法,熟练使用相关的调试命令。
了解Linux系统中C语言编程规范;实验1:简单程序开发
实验2:单步编译和多步编译
实验3:浏览gdb内置命令
实验4:利用gdb调试程序
;实验目的
掌握Linux系统中C语言程序开发的方法。;实验内容与要求
编写并执行该小节的hello_linux程序,源码参考电子资源“源代码/ch03/1/hello_linux.c”。
编写一个字母大小写转换的程序,并验证gcc编译源文件时若没有-o参数,生成的可执行文件名是否为a.out。(源码参考电子资源“源代码/ch03/1/char_change.c”);原理/背景
程序开发要经过源码的编写、编译与执行三步
;实验步骤
1.源代码编写:使用gedit创建该文件即可,假设当前目录为读者的home目录,
2.使用gcc命令编译源文件hello_linux.c,生成可执行文件hello_linux
3.使用$./命令运行生成的可执行文件hello_linux
;实验目的
掌握程序的单步编译和多步编译方法。;实验内容及要求
创建三个文件sum.c、sub.c和main.c,sum.c文件定义一个完成两个数相加的函数,sub.c文件定义一个完成两个数相减的函数,main.c是定义主函数并调用前面定义的加法和减法函数,采用单步编译和多步编译分别生成可执行文件main1和main2。(源码参见电子资源“源代码/ch03/2/”);原理/背景
C语言程序从编写到执行经过预编译、编译、汇编和链接四步,可以使用相关的命令分四步对某一源码进行操作或者使用一条命令同时做成四步;实验步骤
单步编译
使用gcc命令单步编译
多步编译
1.使用gcc-E命令进行预编译,
2.使用gcc-S命令将*.i编译成*.s文件
3.使用gcc–c对*.s汇编成*.o文件
4.使用gcc对*.o文件进行链接
;实验目的
浏览并体验gdb的基本命令用法
;实验内容及要求
在命令行下输入gdb命令启动gdb,然后输入helpall命令浏览gdb所有的内置命令,查看总体分类。;原理/背景
gdb中的命令分为显示变量或者表达式的值、设置断点、不同的执行方式等。;实验目的
掌握gdb调试程序的基本方法
;实验内容及要求
现有一程序要求打印两个字符串,其中一个按正序打印,一个按逆序打印,源码如下页图所示(或参见电子资源“源代码/ch03/3/hello_gdb.c”),但是运行结果不能满足上述要求,请读者生成可调试的执行文件,并利用gdb进行调试,找到问题并修改,让程序最终完成上述要求。;;原理/背景
使用gdb下列相关的命令完成基本的调试工作
设置断点、运行程序、观察变量值
观察变量、单步执行、进入函数
一步运行到下一个断点
;实验步骤
1.使用gcc-g命令生成可以调试的exe文件,
2.使用gdb命令启动gdb对1中的文件进行调试
3.使用相关的调试命令找出逻辑错误的所在
4.修正逻辑错误,得到正确的输出;练习
1.编写程序快速统计给定整数二进制形式中1的个数。
2.交换两个变量(整型)的值,且不允许使用中间值
完成上面的程序,并使用gdb调试相关的错误。