




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式系統(tǒng)原理及應(yīng)用實(shí)驗(yàn)指導(dǎo)書北京理工大學(xué)珠海學(xué)院機(jī)械與車輛學(xué)院20147實(shí)驗(yàn)3 GDB調(diào)試器和Make工程管理器一、實(shí)驗(yàn)?zāi)康?.掌握利用GDB調(diào)試器調(diào)試C語(yǔ)言程序的基本方法2.掌握Linux下make工具的使用方法二、實(shí)驗(yàn)環(huán)境與條件1.標(biāo)配PC機(jī)2.VMware Workstation 93.Red Hat Enterprise Linux 54.GCC編譯器5.GDB調(diào)試器6.Make工程管理器三、實(shí)驗(yàn)內(nèi)容(一)GDB調(diào)試器使用1. 相關(guān)知識(shí)點(diǎn)GDB基本命令l(list)查看程序代碼(每次10行)b(break)XXX設(shè)置斷點(diǎn),XXX可以是函數(shù)名、行號(hào)、文件名等info break查看所有
2、設(shè)置的斷點(diǎn)delete斷點(diǎn)編號(hào)刪除斷點(diǎn)r(run)運(yùn)行程序n(next)單步執(zhí)行(不進(jìn)入子函數(shù))s(step)單步執(zhí)行(進(jìn)入子函數(shù))c(continue)繼續(xù)運(yùn)行程序p(print) 變量查看指定變量的值finish運(yùn)行程序,直到當(dāng)前函數(shù)結(jié)束watch變量名對(duì)指定變量進(jìn)行監(jiān)控n(quit)退出調(diào)試器2. 通過(guò)sum.c程序?qū)嵗?,學(xué)習(xí)利用GDB調(diào)試器調(diào)試程序的方法先將實(shí)驗(yàn)2中編寫并備份的test目錄壓縮包文件test.tgz(本實(shí)驗(yàn)需使用該目錄中的sum.c文件)重新恢復(fù)到/root目錄下(以下操作要求先將test.tgz文件拷貝到Windows下虛擬機(jī)的共享目錄D:share)。#cd /ro
3、ot#cp /mnt/hgfs/share/test.tgz ./(復(fù)制文件到/root)#tar -zxvf test.tgz(解壓縮)#cd test(本實(shí)驗(yàn)工作目錄/root/test)(1)sum.c(實(shí)驗(yàn)2的練習(xí)程序)程序代碼如下。#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調(diào)試器,必須在編譯時(shí)加入調(diào)試選項(xiàng)-g。#gcc -g sum.c -o sum(3)啟動(dòng)gdb調(diào)試器,進(jìn)入gdb調(diào)試環(huán)境#gdb sum(4)查看源代碼(5)設(shè)置斷點(diǎn)(6)運(yùn)行并調(diào)試程序調(diào)試結(jié)束后退出調(diào)試器:(gdb)quit3. 課后自行練習(xí)對(duì)教材P73頁(yè)bug.c源程序的調(diào)試(二)Make工程管理器的使用結(jié)合教材3.3.2節(jié)程序,學(xué)習(xí)使用Make工程管理器1.使用vi編輯器編寫源程序本實(shí)驗(yàn)工作目錄為/root/test/m,共有7個(gè)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并進(jìn)行
8、編譯(1)編輯Makefile#vi Makefile(注意字母大小寫,當(dāng)前工作目錄為/root/test/m)編輯Makefile內(nèi)容如下: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進(jìn)行編譯(make缺省方式下按Makefile配置進(jìn)行編譯)#make編譯后生成的文件如下:(3)執(zhí)行生成的程序m#./m(4)對(duì)Makefile進(jìn)行預(yù)定義變量簡(jiǎn)化,獲得新的配置文件Makefile2#cp Makefile Makefile2#vi Makefile2編輯Makefile2內(nèi)容如下: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)清除上次編譯所產(chǎn)生的過(guò)程文件#make clean(清除所有*.o文件)#rm -f m(刪除生成的可執(zhí)行文件)(6)重新按Makefile2進(jìn)行編譯#make -f Makefile2(指定根據(jù)Makefile2進(jìn)行編譯)編譯后生成的文件如下:(7)執(zhí)行生成的程序m#./m3.課后請(qǐng)同學(xué)根據(jù)教材中介紹的對(duì)Makefile進(jìn)一步的簡(jiǎn)化以及針對(duì)文件在不同目錄下的Make
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)有線領(lǐng)夾式麥克風(fēng)市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國(guó)純氮行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年中國(guó)數(shù)控打圈機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 2025至2031年中國(guó)精密沖模行業(yè)投資前景及策略咨詢研究報(bào)告
- 新疆科信職業(yè)技術(shù)學(xué)院《鄂南竹木工藝文創(chuàng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 肇慶市實(shí)驗(yàn)中學(xué)高中生物三:生態(tài)系統(tǒng)的結(jié)構(gòu)第課時(shí)導(dǎo)學(xué)案
- 肇慶市實(shí)驗(yàn)中學(xué)高中歷史三:第一單元測(cè)驗(yàn)題
- 新疆科信職業(yè)技術(shù)學(xué)院《智慧物流設(shè)施與設(shè)備》2023-2024學(xué)年第一學(xué)期期末試卷
- 新疆農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《國(guó)際商務(wù)英語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆維吾爾烏魯木齊市2025屆數(shù)學(xué)五年級(jí)第二學(xué)期期末預(yù)測(cè)試題含答案
- 2025中考復(fù)習(xí)必背初中英語(yǔ)單詞1600打印版(上)
- 2025年河南省機(jī)場(chǎng)集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 人事檔案管理系統(tǒng)驗(yàn)收?qǐng)?bào)告文檔
- 2025年四川省成都市住房和城鄉(xiāng)建設(shè)局所屬10家事業(yè)單位招聘45人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年高考物理復(fù)習(xí)之小題狂練600題(解答題):機(jī)械波(10題)
- 手工掛面標(biāo)準(zhǔn)
- DB31-T 1385-2022 科技成果分類評(píng)價(jià)和價(jià)值潛力評(píng)價(jià)規(guī)范
- 《什么是PBL教學(xué)法》課件
- 首都經(jīng)濟(jì)貿(mào)易大學(xué)《中級(jí)微觀經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 亞朵客房培訓(xùn)
- 拓寬超高清內(nèi)容分發(fā)渠道實(shí)施方案
評(píng)論
0/150
提交評(píng)論