




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Linux下C語言程序的編譯調(diào)試實(shí)驗(yàn)學(xué) 院:中子信息工程學(xué)院專 業(yè):通信工程姓 名:王斯宇學(xué) 號:11211116指導(dǎo)老師:周圍老師完成時(shí)間: 2013年6月3日一、實(shí)驗(yàn)?zāi)康?,熟悉Linux下C語言編譯調(diào)試環(huán)境。2 .學(xué)會使用gcc編譯C程序。3 .學(xué)會使用gdb調(diào)試C程序。二、實(shí)驗(yàn)內(nèi)容1 .在Linux 下,編寫程序factorize.c,功能如下:輸入一個(gè)int型整數(shù),輸出其因式分解結(jié)果。2 .編譯運(yùn)行,生成可執(zhí)行文件。3,用gdb調(diào)試該程序,找到錯(cuò)誤并修改。三、實(shí)驗(yàn)軟件環(huán)境GCCGCC (GNU Compiler Collection, GNU 編譯器集合)是一套由 GNU 工程開發(fā)的
2、支持多種編程語言的編譯器。GCC是自由軟件發(fā)展過程中的著名例子, 由自由軟件基金會以GPL協(xié)議發(fā)布。GCC是大多數(shù)類Unix操作系統(tǒng)(如Linux、 BSD、Mac OS X 等)的標(biāo)準(zhǔn)的編譯器,GCC同樣適用于微軟的 Windows。 GCC支持多種計(jì)算機(jī)體系芯片,如x86、ARM ,并已移植到其他多種硬件平臺。 GCC原名為GNU C編譯器(GNU C Compiler ),因?yàn)樗局荒芴幚?C語 言。GCC很快地?cái)U(kuò)展,并支持處理 C+。后來又?jǐn)U展能夠支持更多編程語言, 如 Fortran 、Pascal、Objective-C 、Java、Ada、Go 等。GDBGDB是GNU開源組織
3、發(fā)布的一個(gè)強(qiáng)大的UNIX下的程序調(diào)試工具。或許, 各位比較喜歡那種圖形界面方式的,像VC、BCB等IDE的調(diào)試,但如果你是在UNIX平臺下做軟件,你會發(fā)現(xiàn) GDB這個(gè)調(diào)試工具有比VC、BCB的圖形 化調(diào)試器更強(qiáng)大的功能。所謂“寸有所長,尺有所短”就是這個(gè)道理。一般來說,GDB主要幫助你完成下面四個(gè)方面的功能:1、啟動(dòng)你的程序,可以按照你的自定義的要求隨心所欲的運(yùn)行程序。2、可讓被調(diào)試的程序在你所指定的調(diào)置的斷點(diǎn)處停住。(斷點(diǎn)可以是條件表達(dá)式)。3、當(dāng)程序被停住時(shí),可以檢查此時(shí)你的程序中所發(fā)生的事。4、動(dòng)態(tài)的改變你程序的執(zhí)行環(huán)境。四、實(shí)驗(yàn)步驟:1 .程序編輯在桌面環(huán)境下新建一個(gè)文件,打開文件輸入
4、代碼,保存為 factorize.c ,然 后將其復(fù)制到在/home/文檔目錄下。附:原程序代碼#include <stdio.h>int main(int argc, char *argv) int n,i;printf("Please enter an integer:");scanf("%d",&n);printf("%d=",n);for(i=2;i<=n;i+)(while(n!=i)(if(n%i=0)(printf("%d*",i);n=n-i;elsebreak;print
5、f("%dn",n);return 0;2 .編譯并運(yùn)行用gcc命令編譯程序通過后運(yùn)行,輸入 18 ,輸出結(jié)果明顯是錯(cuò)誤的3 .調(diào)試進(jìn)入gdb環(huán)境,使用gdb命令,幫助時(shí)使用help在for循環(huán)處(第9行)設(shè)置斷點(diǎn),使用命令在printf函數(shù)處(第15行)設(shè)置斷點(diǎn),使用命令“ b 15查看斷點(diǎn)設(shè)置情況,使用命令" info b運(yùn)行代碼,使用命令" r”。單步運(yùn)行代碼,使用命令" n”。查看暫停點(diǎn)變量值,使用命令“ pi ”或“ p n ”。繼續(xù)單步運(yùn)行代碼數(shù)次,并使用命令查看,判斷 i或n的值。繼續(xù)程序的運(yùn)行,使用命令" c”。從斷點(diǎn)
6、數(shù)據(jù)可以得知:程序一直處于 while循環(huán)之中,i的數(shù)值一直為2, 所以變量n的數(shù)值出現(xiàn)了問題,導(dǎo)致最終輸出結(jié)果只有2。仔細(xì)檢查代碼后發(fā)現(xiàn) 錯(cuò)誤,原程序第16行“n=n-i ”應(yīng)改為“ n=n/i4 .再次編譯并運(yùn)行這次輸出"18=2*3*3 "正確,程序編寫成功附:修改后的程序代碼#include <stdio.h>int main(int argc, char *argv)int n,i;printf("Please enter an integer:");scanf("%d",&n);printf("
7、;%d=",n);for(i=2;i<=n;i+)while(n!=i)(if(n%i=0)(printf("%d*",i);n=n-i;)elsebreak;)printf("%dn",n);return 0;)同時(shí),可以在文件系統(tǒng)中看到,程序代碼所在的文件夾生成了可執(zhí)行文件 factorize ,這也是gcc成功編譯并能下一步運(yùn)行的體現(xiàn)。五、實(shí)驗(yàn)總結(jié)通過本次實(shí)驗(yàn),我了解了 linux環(huán)境下進(jìn)行C語言編程的基本方法,再一 次感受到了 ubuntu系統(tǒng)的簡便和快捷。與windows編程需要IDE開發(fā)環(huán)境不同,linux系統(tǒng)本身已經(jīng)良好的集成 了進(jìn)行C語言的基本環(huán)境,所以只需在終端輸入幾個(gè)簡單的命令,程序即可編 譯并運(yùn)行了。只是對于習(xí)慣了圖形界面的我們來說,剛上手時(shí)的確會感到這種方法的不便之處,尤其是對于初學(xué)者來說,不知道任何gcc或者gdb的命令就根本無從下手,而這一切只能靠記憶。但是不得不承認(rèn),這種方式的效率是最高的, 對系統(tǒng)資源的占用是最少的,可以說是最純粹的編程,完全不會出現(xiàn) visual studio那樣又卡又慢或者意外崩潰的情況。綜上所述,linux系統(tǒng)環(huán)境確實(shí)更加適合C程序開發(fā),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 菲迪克合同條件2025年度解讀:合同履行監(jiān)督與違約責(zé)任認(rèn)定
- 籃球館休息區(qū)裝修協(xié)議
- 企業(yè)并購居間合同承諾書
- 環(huán)保材料運(yùn)輸服務(wù)協(xié)議
- 農(nóng)村購買樓房合同范例
- 買賣合同買賣合同范例
- 中介擔(dān)保合同范例
- 住房自裝裝修合同范例
- 乙方商務(wù)用車合同范例
- 專用閥門采購合同范例
- 13詩第十二-整本書閱讀系列《經(jīng)典常談》名著閱讀與練習(xí)
- 小學(xué)美術(shù)-湘美版四年級下冊第10課中國龍教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 一年級下冊勞技教案
- 部編版四年級語文下冊第4單元大單元整體教學(xué)作業(yè)設(shè)計(jì)(教案配套)
- 大一邏輯學(xué)全部
- 游戲法緩解小班幼兒入園焦慮的個(gè)案研究
- 2023年包頭輕工職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)題庫及答案解析
- 地下室頂板裂縫防水處理方案(完整資料)
- 宮頸錐切日間手術(shù)臨床路徑(婦科)及表單
- GB/T 23111-2008非自動(dòng)衡器
- GB/T 18877-2020有機(jī)無機(jī)復(fù)混肥料
評論
0/150
提交評論