




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统原理及应用实验指导书北京理工大学珠海学院机械与车辆学院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查看所有
2、设置的断点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 /ro
3、ot#cp /mnt/hgfs/share/test.tgz ./(复制文件到/root)#tar -zxvf test.tgz(解压缩)#cd test(本实验工作目录/root/test)(1)sum.c(实验2的练习程序)程序代码如下。#include<stdio.h>int 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
4、<=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
5、,listen.c,visit.c,play.c,watch.c,各文件代码如下:(1)m.c程序#include<stdio.h>main() 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(&quo
6、t;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程序#include<stdio.h>void study()printf("study embedded system todayn");(4)listen.c程序#include<stdio.h>void listen()printf("
7、listen english todayn");(5)play.c程序#include<stdio.h>void play()printf("play football todayn");(6)visit.c程序#include<stdio.h>void visit()printf("visit friend todayn");(7)watch.c程序#include<stdio.h>void watch()printf("watch TV todayn");2.编辑Makefile并进行
8、编译(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.owa
9、tch.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=gc
10、cTARGET=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进一步的简化以及针对文件在不同目录下的Make
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装设计从灵感到设计的流程
- 2024年7月高级育婴员测试题与答案(附解析)
- 6月保健按摩师模拟练习题含答案(附解析)
- 航标器材在航道安全保障系统中的应用考核试卷
- 安全用电知识培训教材
- 《S制度执行力》课件
- 道路安全措施施工方案
- 计划生育与生育政策与人口流动趋势考核试卷
- 移动通信技术在零售行业的应用考核试卷
- 四年级孩子性教育指南
- 骨科股骨颈骨折“一病一品”成果汇报
- 《大禹治水的故事》课本剧剧本:感受英雄力量领略坚韧精神(6篇)
- 2018年高考英语全国一卷(精校+答案+听力原文)
- 管道直饮水项目可行性研究报告
- 工程决算书(结算书)模板
- 河北农业大学现代科技学院《试验设计与数据处理实验》2023-2024学年第一学期期末试卷
- 零星工程维修 投标方案(技术方案)
- 统编版 高中语文 必修下册 第六单元《促织》
- 2024年房屋代持协议书范本
- 2024年北京市中考模拟道德与法治试卷
- TZJATA 0025-2024 水质 总氮测定预制变色酸试剂分光光度法
评论
0/150
提交评论