实验二Linux下C语言开发环境及程序调试

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验二Linux下C语言开发环境及程序调试一、实验目的1、熟悉Linux下的C语言程序编译流程。2、掌握vi、gcc、gdb的使用。二、实验设备硬件:PC机。软件:VMwareWorkstation虚拟机、Linux操作系统。三、实验预习要求1、gcc编译过程及常用编译选项。2、gdb调试器使用流程,查看文件、设置断点、单步运行等gdb基本命令的使用。四、实验内容及步骤1、Linux下C语言开发流程及GCC编译器的使用。(1)启动虚拟机,进入Linux操作系统,然后启动终端。(2)使用Vim编辑源程序,练习命令模式、编辑模式、底行模式之间的切换,在终端中输入vihello.c,编辑完成后存盘。(注:代码自己编写)(3)练习以下编译选项的使用:gcc-Ehello.c-ohello.igcc-Shello.i-ohello.Sgcc-chello.S-ohello.o//目标文件gcchello.o-ohello//可执行文件(4)运行程序,在终端中查看程序运行结果。2、GDB调试器的使用。使用Vim编辑源程序,在终端中输入vitest.c,输入如下源代码,编辑完成后存盘。此代码的功能为输出倒序main函数中定义的字符串,但结果没有输出显示,现通过调试的方式来解决程序中存在的问题。程序源代码如下:#includestdio.hintdisplay1(char*string)intdisplay2(char*string1)intmain(){charstring[]=EmbeddedLinux;display1(string);display2(string);}intdisplay1(char*string){printf(Theoriginalstringis%s\n,string);}intdisplay2(char*string1){char*string2;intsize,i;size=strlen(string1);string2=(char*)malloc(size+1);for(i=0;i=size;i++)string2[size-i]=string1[i];string2[size+1]='';printf(Thestringafterwardis%s\n,string2);}(1)用Gcc编译:gcc-ggreet.c-ogreet。(2)运行greet:./greet,查看输出结果是否正确。(3)启动Gdb调试:gdbgreet查看源代码:l在30行(for循环处)设置断点:b30在33行(printf函数处)设置断点:b33。查看断点设置情况:infob运行代码:r单步运行代码:n查看暂停点变量值:pstring2[size-i]继续单步运行代码数次,并使用命令查看,发现string2[size-1]的值正确继续程序的运行:c程序在printf前停止运行,此时依次查看string2[0]、string2[1]…,找到程序运行结果不正确的原因。退出Gdb:q将程序修改正确并使用Gcc重新编译,查看运行结果:./greet五、可选题编程实现输入任意2个小于100的正整数a和b,然后输出100以内能同时整除a和b的所有数,并使用gcc和gdb编译和调试。六、实验报告要求认真记录调试过程和所有调试的程序代码。

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功