版權(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é)號(hào):11211116指導(dǎo)老師:周圍老師完成時(shí)間: 2013年6月3日一、實(shí)驗(yàn)?zāi)康?. 熟悉 linux 下 c 語言編譯調(diào)試環(huán)境。2. 學(xué)會(huì)使用 gcc 編譯 c 程序。3. 學(xué)會(huì)使用 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 編譯
2、器集合)是一套由 gnu 工程開發(fā)的支持多種編程語言的編譯器。 gcc 是自由軟件發(fā)展過程中的著名例子,由自由軟件基金會(huì)以 gpl 協(xié)議發(fā)布。 gcc 是大多數(shù)類unix 操作系統(tǒng) (如 linux 、bsd 、 mac os x 等)的標(biāo)準(zhǔn)的編譯器, gcc 同樣適用于微軟的 windows 。gcc 支持多種計(jì)算機(jī)體系芯片, 如 x86 、 arm , 并已移植到其他多種硬件平臺(tái)。gcc 原名為 gnu c 編譯器( gnu c compiler ) ,因?yàn)樗局荒芴幚韈 語言。 gcc 很快地?cái)U(kuò)展,并支持處理c+ 。后來又?jǐn)U展能夠支持更多編程語言,如 fortran 、 pascal
3、、 objective-c 、 java 、 ada 、 go 等。gdbgdb 是 gnu 開源組織發(fā)布的一個(gè)強(qiáng)大的 unix 下的程序調(diào)試工具。 或許,各位比較喜歡那種圖形界面方式的,像vc 、 bcb 等 ide 的調(diào)試,但如果你是在 unix 平臺(tái)下做軟件,你會(huì)發(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)程序被
4、停住時(shí),可以檢查此時(shí)你的程序中所發(fā)生的事。4、動(dòng)態(tài)的改變你程序的執(zhí)行環(huán)境。四、實(shí)驗(yàn)步驟:1. 程序編輯在桌面環(huán)境下新建一個(gè)文件,打開文件輸入代碼,保存為 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+)w
5、hile(n!=i)if(n%i=0)printf("%d*",i);n=n-i;elsebreak;printf("%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)變量
6、值,使用命令“ p i ”或“ p n ” 。繼續(xù)單步運(yùn)行代碼數(shù)次,并使用命令查看,判斷i 或 n 的值。繼續(xù)程序的運(yùn)行,使用命令“ c” 。從斷點(diǎn)數(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/i ” 。4. 再次編譯并運(yùn)行這次輸出“ 18=2*3*3 ”正確,程序編寫成功附:修改后的程序代碼#include <stdio.h>int main(int argc, char *argv)int n,i;printf(
7、"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;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)
8、境下進(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í)的確會(huì)感到這種方法的不便之處,尤其是對于初學(xué)者來說,不知道任何gcc 或者 gdb 的命令就根本無從下手, 而這一切只能靠記憶。 但是不得不承認(rèn), 這種方式的效率是最高的,對系統(tǒng)資源的占用是最少的,可以說是最純粹的編程,完全不會(huì)出現(xiàn)visualstudio 那樣又卡又慢或者意外崩潰的情況。綜上所述, linux 系統(tǒng)環(huán)境確實(shí)更加適合c 程序開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 承德應(yīng)用技術(shù)職業(yè)學(xué)院《中藥鑒定學(xué)(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 承德醫(yī)學(xué)院《分布式數(shù)據(jù)庫原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 成都中醫(yī)藥大學(xué)《工程巖土學(xué)及實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025版精密機(jī)械加工外包項(xiàng)目合同模板2篇
- 二零二五年度二手車收購與售后服務(wù)連鎖合同2篇
- 二零二五年度體育賽事合作協(xié)議書2篇
- 場內(nèi)管網(wǎng)施工方案
- 2024消防設(shè)施智能化改造與日常維護(hù)服務(wù)協(xié)議3篇
- 二零二五年度個(gè)人股權(quán)贈(zèng)與與財(cái)產(chǎn)分割協(xié)議書3篇
- 2024學(xué)校教師學(xué)術(shù)交流與合作研究合同3篇
- 人體寄生蟲表格總結(jié)超全(原蟲部分)
- 合作投資酒店意向合同范例
- 2024年度新能源汽車充電物流合同
- 2024年學(xué)校意識(shí)形態(tài)工作總結(jié)模版(3篇)
- 機(jī)械設(shè)備招投標(biāo)授權(quán)委托書模板
- 科研年終總結(jié)匯報(bào)
- 汽車維修安全應(yīng)急預(yù)案范文(5篇)
- 安全教育教案大班40篇
- 2024-2030年中國清潔供熱行業(yè)發(fā)展趨勢與投資前景預(yù)測報(bào)告版
- 2025屆上海市交大附中嘉定分校物理高二上期末達(dá)標(biāo)檢測試題含解析
- 放飛心靈 激揚(yáng)青春-中職生心理健康學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評論
0/150
提交評論