欢迎来到天天文库
浏览记录
ID:59254211
大小:169.50 KB
页数:6页
时间:2020-09-08
《Linux操作系统环境下的C程序开发.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、西南科技大学计算机科学与技术学院实验报告实验名称Linux操作系统下C程序设计实验地点实验日期指导教师学生班级学生姓名学生学号提交日期一、实验目的熟悉字符模式下的C程序编译和调试环境,基本掌握Linux字符模式下的编译工具和调试工具的使用二、实验题目Linux操作系统下C程序设计三、实验设计n练习实验指导书上的三种编译方法和过程直接编译静态库共享库n练习实验指导书上的调试过程(写出对实验过程的设计,包括步骤、方法等)四、实验记录当前文件夹:1、直接编译2、静态库将calc.c编译成中间文件calc.o生成静态库文件,添加calc.o到静态
2、库中,命令行中,-rlibcalc.a参数表示建立静态库,名字为libcalc.a。接下来,使用如下命令行:-l参数可以指定库名称,这里calc表示使用库libcalc.a,库名字前面的lib和后面的.a被省略掉了,遵从了命名法。3、共享库首先,编译calc.c为calc.o,使用命令行:命令行中,-fpic指定calc.o为可重分配地址属性,pic是positionindependencecode的缩写。接下来使用calc.o生成共享库calc.so:最后编译main.c,链接生成的共享库:4、调试过程要完成源代码级别的调试,需要在编译
3、时指定将调试信息添加到可执行文件中,也就是说可以在调试时看到程序的函数名、变量名等,而不是内存地址。gcc命令的-g参数可以完成这个功能。例如使用如下命令:用GDB开始调试这里如果没有写带有调试信息的可执行文件名时,可以再下面用filefilename显示其当前执行后面的源代码(默认含有主函数的代码):加上文件名,可显示其他包含的文件:设置断点(此时为listmain):开始执行:到断点这一行,继续:以下继续next,直到有函数调用的这一行,step可以进入函数:此时可以一直step/next下去直到函数调用完成,或者return直接返回
4、主函数:在调试中可以查看某个变量的值:也可以改变其值:可以直接将后面的执行完:可用kill中断调试,用quit退出调试其他未用到的:call--调试中调用函数jump--跳转执行shell--执行其后的shell命令一、实验思考或体会通过本次试验学会了怎样在linux下编译工具和调试工具的使用,掌握了使用其的一些常用命令,收获了很多。思考题:1、源代码级别的调试和二进制级别的调试有什么区别?答:源代码级别的调试是在接近于自然语言的调试.而二进制的调试这是在机器码下的调试..更接近与电脑的语言..这样能更好的利用硬件资源..优化代码,优化操
5、作流程等..源代码可以自己选参数编译,比较机动。如果对系统比较熟,自己动手编译安装,自己就容易控制软件(控制欲很强的人都这么做)。而二进制的,厂家已经设定好参数编译好可以直接运行了,它对厂家的特定发行版系统作了一些优化!
此文档下载收益归作者所有