实验指导书(实验03 GDB调试器+Make工程管理器).doc_第1页
实验指导书(实验03 GDB调试器+Make工程管理器).doc_第2页
实验指导书(实验03 GDB调试器+Make工程管理器).doc_第3页
实验指导书(实验03 GDB调试器+Make工程管理器).doc_第4页
实验指导书(实验03 GDB调试器+Make工程管理器).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统原理及应用实验指导书北京理工大学珠海学院机械与车辆学院20147实验3 GDB调试器和Make工程管理器一、实验目的1.掌握利用GDB调试器调试C语言程序的基本方法2.掌握Linux下make工具的使用方法二、实验环境与条件1.标配PC机2.VMware Workstation 93.Red Hat Enterprise Linux 54.GCC编译器5.GDB调试器6.Make工程管理器三、实验内容(一)GDB调试器使用1. 相关知识点GDB基本命令l(list)查看程序代码(每次10行)b(break)XXX设置断点,XXX可以是函数名、行号、文件名等info break查看所有设置的断点delete断点编号删除断点r(run)运行程序n(next)单步执行(不进入子函数)s(step)单步执行(进入子函数)c(continue)继续运行程序p(print) 变量查看指定变量的值finish运行程序,直到当前函数结束watch变量名对指定变量进行监控n(quit)退出调试器2. 通过sum.c程序实例,学习利用GDB调试器调试程序的方法先将实验2中编写并备份的test目录压缩包文件test.tgz(本实验需使用该目录中的sum.c文件)重新恢复到/root目录下(以下操作要求先将test.tgz文件拷贝到Windows下虚拟机的共享目录D:share)。#cd /root#cp /mnt/hgfs/share/test.tgz ./(复制文件到/root)#tar -zxvf test.tgz(解压缩)#cd test(本实验工作目录/root/test)(1)sum.c(实验2的练习程序)程序代码如下。#includeint sum(int n);main()int s=0;int i,n;for(i=0;i=50;i+)s=i+s;s=s+sum(20);printf(the result is %dn,s);int sum(int n)int total=0;int i;for(i=0;i=n;i+)total=total+i;return (total);(2)编译源程序注意:使用GDB调试器,必须在编译时加入调试选项-g。#gcc -g sum.c -o sum(3)启动gdb调试器,进入gdb调试环境#gdb sum(4)查看源代码(5)设置断点(6)运行并调试程序调试结束后退出调试器:(gdb)quit3. 课后自行练习对教材P73页bug.c源程序的调试(二)Make工程管理器的使用结合教材3.3.2节程序,学习使用Make工程管理器1.使用vi编辑器编写源程序本实验工作目录为/root/test/m,共有7个C源程序文件,分别是m.c,m.h,study.c,listen.c,visit.c,play.c,watch.c,各文件代码如下:(1)m.c程序#includemain() int i; printf(please input the value of i from 1 to 5:n); scanf(%d,&i); if(i=1) visit(); else if(i=2) study(); else if(i=3) play(); else if(i=4) watch(); else if(i=5) listen(); else printf(nothing to don); printf(This is a woderful dayn);(2)m.h程序void visit();void listen();void watch();void study();void play();(3)study.c程序#includevoid study()printf(study embedded system todayn);(4)listen.c程序#includevoid listen()printf(listen english todayn);(5)play.c程序#includevoid play()printf(play football todayn);(6)visit.c程序#includevoid visit()printf(visit friend todayn);(7)watch.c程序#includevoid watch()printf(watch TV todayn);2.编辑Makefile并进行编译(1)编辑Makefile#vi Makefile(注意字母大小写,当前工作目录为/root/test/m)编辑Makefile内容如下:CC=gccTARGET=AllOBJECTS= m.o visit.o listen.o watch.o study.o play.o$(TARGET):$(OBJECTS)$(CC) $(OBJECTS) -o mm.o:m.c m.h$(CC) -c m.c -o m.ovisit.o:visit.c$(CC) -c visit.c -o visit.olisten.o:listen.c$(CC) -c listen.c -o listen.owatch.o:watch.c$(CC) -c watch.c -o watch.ostudy.o:study.c$(CC) -c study.c -o study.oplay.o:play.c$(CC) -c play.c -o play.oclean:rm *.o(2)按Makefile进行编译(make缺省方式下按Makefile配置进行编译)#make编译后生成的文件如下:(3)执行生成的程序m#./m(4)对Makefile进行预定义变量简化,获得新的配置文件Makefile2#cp Makefile Makefile2#vi Makefile2编辑Makefile2内容如下:CC=gccTARGET=AllOBJECTS= m.o visit.o listen.o watch.o study.o play.o$(TARGET):$(OBJECTS)$(CC) $ -o mm.o:m.c m.h$(CC) -c $ -o $visit.o:visit.c$(CC) -c $ -o $listen.o:listen.c$(CC) -c $ -o $watch.o:watch.c$(CC) -c $ -o $study.o:study.c$(CC) -c $ -o $play.o:play.c$(CC) -c $ -o $clean:rm *.o(5)清除上次编译所产生的过程文件#make clean(清除所有*.o文件)#rm -f m(删除生成的可执行文件)(6)重新按Makefile2进行编译#make -f Makefile2(指定根据Makefile2进行编译)编译后生成的文件如下:(7)执行生成的程序m#./m3.课后请同学根据教材中介绍的对Makefile进一步的简化以及针对文件在不同目录下的Makefile进行编译练习。四、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论