版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、C語言調(diào)試方法一、建立“工程”1. 啟動VC+6.0安裝好微軟的Visual Studio 6.0 后,在系統(tǒng)的“開始”菜單的“程序”中可以啟動Visual C+6.0,見圖0-1。也可以在桌面上為菜單項(xiàng)Visual C+6.0建立一個快捷圖標(biāo),如圖0-2.所示??蛇x擇這兩個方法之一啟動VC。2. 建立工程方法一:建立空的工程后添加源文件。啟動VC環(huán)境后,選擇“File”菜單中的“New”項(xiàng),彈出圖0-3所示的對話框。其標(biāo)簽項(xiàng)自動選擇為“Projects”(工程)。作為初學(xué)者,在左側(cè)的列表中選擇倒數(shù)第3項(xiàng)“Win32 Console Application”(win32 控制臺應(yīng)用),在右側(cè)“
2、Project Name”文本框中輸入欲建立的工程名稱,如:Example01。在“Location”(位置)中選擇工程的存放位置(最好為課程建一個總文件夾),點(diǎn)擊“OK”,系統(tǒng)出現(xiàn)建立工程的導(dǎo)航對話框,如圖0-4所示。圖0-3 創(chuàng)建控制臺應(yīng)用工程圖0-4 創(chuàng)建工程的導(dǎo)航對話框在圖0-4的導(dǎo)航對話框中選擇默認(rèn)的“An empty project”(空的工程),然后點(diǎn)擊“Finish”(完成)。系統(tǒng)彈出相關(guān)的創(chuàng)建工程的信息,如圖0-5所示。點(diǎn)擊按鈕“OK”后,系統(tǒng)創(chuàng)建工程,建立相關(guān)的文件夾,不過這些文件夾都是空的,系統(tǒng)界面類似于圖0-6. 。圖0-5 創(chuàng)建工程的信息在圖0-6中,窗口左側(cè)為“Wo
3、rkerspace”(工作空間)窗口,下部窗口為“Output”(輸出)窗口。在workerspace(工作空間)窗口中有兩個視圖標(biāo)簽:ClassView(類視圖)和FileView(文件視圖)。前者按照C+ “類”的管理方式展現(xiàn)C/C+的源代碼,后者按照文件的組織方式展現(xiàn)C/C+的源代碼。點(diǎn)擊標(biāo)簽的名稱,可以在二者之間切換顯示。接下來的操作是為工程增加一個源文件,具體步驟見第二節(jié)。方法2:建立框架工程后更改源文件在建立工程,系統(tǒng)彈出建立工程的導(dǎo)航對話框后,選擇第3項(xiàng),A“Hello,World”application,然后點(diǎn)擊“Finish”,如圖0-7所示。圖0-6 創(chuàng)建工程后的界面圖0-
4、7 創(chuàng)建一個類似于輸出Hello,World的工程系統(tǒng)創(chuàng)建工程后,在工作空間的ClassView視圖中,打開“類樹”中的Global,可以見到主函數(shù)main,雙擊主函數(shù)main,系統(tǒng)打開相應(yīng)的源文件(與工程名同,擴(kuò)展名為cpp),如圖0-8所示??梢愿倪@個源文件代碼為自己的程序。F注意:更改時(shí),不要將編譯命令“ #include "stdafx.h" ”丟掉。F注意:方法1和方法2的區(qū)別有兩點(diǎn):1)方法1沒有建立任何文件此后可以添加.c的源文件,也可以添加.cpp源文件;2)方法2建立了程序框架和一個帶主函數(shù)的.cpp源文件。.c的源文件使用c編譯器,.cpp文件使用C+
5、的編譯器,二者是有區(qū)別的。二、添加源程序1. 源文件的添加按照方法一建立工程后,整個工程是一個完全空的架子,沒有任何源文件。此時(shí),單擊菜單“File”,再次選擇“New”,系統(tǒng)彈出與圖0-3一樣的對話框,不過,此時(shí)的對話框默認(rèn)的標(biāo)簽是“Files”,如圖0-9所示。圖0-8 創(chuàng)建一個類似于輸出Hello,World工程的系統(tǒng)界面圖0-9 為工程建立源文件的對話框在圖0-9中,選擇“C+Source Files”(C+源文件),在右邊的File文本框中填寫文件名(一定要帶有擴(kuò)展名,.c或.cpp,它們的編譯器不同),然后單擊“OK”,系統(tǒng)為使用者建立源文件并打開,右邊的文本編輯區(qū),就是展示源文件
6、內(nèi)容的窗口。圖0-10是為工程example01添加了源文件exam01.c后,并展開了Source Files 文件夾(單擊其前面的“+”號)后的界面。圖0-10 工程添加源文件exam01.c后的界面雙擊文件名exam01.c,可以在右邊的窗口打開這個文件。若為工程添加了多個文件,則每個打開的文件對應(yīng)一個窗口,這個窗口代表源文件的文本區(qū),可以在此編寫程序。例如,編輯如下代碼:/* 程序1 */#include ”stdio.h”void main() printf(“Hello,world!n”); printf(“計(jì)算機(jī)世界,我來了!n”);F注意:輸入漢字后要及時(shí)切換回到西文輸入方式,
7、因?yàn)镃語言使用的n、引號、分號、括號等都是西文的。2. 程序源文件的快速編輯采用縮進(jìn)方式:將程序1鍵入源文件,應(yīng)當(dāng)采用縮進(jìn)方式,如圖0-11所示的兩個printf行,與大括號的垂直位置相比,位置縮進(jìn)了。這種方式在輸入時(shí),自然回車就可以做到。以后的編程中,分支、循環(huán)語句中也應(yīng)當(dāng)使用縮進(jìn)方式。這種“書寫”方式使程序具備有層次的美感,增強(qiáng)邏輯感,讓人容易閱讀理解程序。積極使用windows的復(fù)制-粘貼 程序中表示變量、函數(shù)等等符號可以在多處大量出現(xiàn),甚至一些語句也極其類似,因此,使用windows的剪貼板,可以減少擊鍵的次數(shù),解決快速輸入的問題,還可以減少出現(xiàn)“兩次鍵入的名稱不同”的錯誤。使用剪貼板
8、,需要事先選定文本,其設(shè)計(jì)的方法有:光標(biāo)定位:除了使用鼠標(biāo)定位外,可以使用鍵盤上的光標(biāo)移動鍵(箭頭鍵)、home鍵、end鍵、快捷鍵等進(jìn)行快速光標(biāo)定位。鍵盤右側(cè)區(qū)域的箭頭鍵¬、®是水平(光標(biāo)所在位置左右)移動一個字符。鍵盤右側(cè)區(qū)域的箭頭鍵、¯是光標(biāo)在垂直位置移動一行(上下行移動)。文本選擇 除了用鼠標(biāo)拖動選擇外,雙擊選擇可以選擇一個詞匯(變量名、函數(shù)名等);如果打算選擇單行代碼,可以在文本窗口左側(cè)的邊框上、該行的前面單擊鼠標(biāo)左鍵,即可完成單行的選擇,如圖0-12所示。如果打算選擇多行,可在窗口左側(cè)的邊框上,按下鼠標(biāo)左鍵進(jìn)行拖動。圖0-11 源文件的縮進(jìn)
9、書寫方式全文操作 全文選擇可以使用快捷鍵ctrl+a。全文縮進(jìn) 整個源程序按照格式進(jìn)行縮進(jìn)可以使用快捷鍵alt+F8,當(dāng)然,必須事先選擇全文。取消與恢復(fù) 前次的操作可以用快捷鍵ctrl+y取消;而剛剛被取消的操作可以用快捷鍵ctrl+z恢復(fù)。三、編譯與運(yùn)行1. 編譯當(dāng)將程序1鍵入之后,可點(diǎn)擊菜單“build”中的“Rebuild All”,系統(tǒng)會對源文件及整個工程進(jìn)行編譯,編譯完成后再進(jìn)行連接,最終生成可執(zhí)行程序(.exe)。也可以點(diǎn)擊菜單第2項(xiàng)或按F7生成可執(zhí)行程序。如圖0-13所示。系統(tǒng)進(jìn)入編譯時(shí),在下面將出現(xiàn)output窗口,其中給出編譯和鏈接過程中的語法檢查信息。如果有錯,給出錯誤信息
10、。這些信息包括錯誤行、類別 錯誤代號:錯誤對象名:錯誤原因。2. 排除語法錯誤編譯的一項(xiàng)任務(wù)就是排除程序中的語法錯誤,下面以一個計(jì)算圓的面積的程序(程序2a)為例,說明VC6.0對基本語法錯誤的檢查。/* 程序2a */void main()float r; area;printf("本程序計(jì)算圓的面積,請輸入圓的半徑n");scanf("%f",&r);area=PI*r*r;printf("半徑為%.3f的圓面積為:%.3fn",r,area);鍵入此程序后,經(jīng)編譯,在輸入窗口中得到編譯錯誤信息,如圖0-14所示。其中指出
11、,程序有兩處錯誤,3處警告。信息較長較多時(shí),可以滾動水平和垂直滾動條,來查看某條信息。也可以雙擊其中某個信息,使信息出現(xiàn)在最下邊(藍(lán)底白字部分)。雙擊某個信息的同時(shí),在編輯框的左邊框的對應(yīng)行上,將出現(xiàn)一個藍(lán)色箭頭,指明出錯的位置。錯誤信息的格式是:源文件路徑文件名(行號):錯誤類別 錯誤代號:錯誤對象名:錯誤原因。如:e:example02exam02.c(3) : error C2065 : area : undeclared indentifer. 是說:源文件exam02.c的第3行,有錯誤,錯誤代碼是C2065,即area錯誤,原因是標(biāo)識符沒有定義。查其代碼行可知,由于在變量r與are
12、a之間使用了分號。原本打算將它們都定義為float型,應(yīng)該使用逗號。使用分號將使area失去類型。圖0-14 程序2的編譯輸出信息另一個錯誤是標(biāo)識符PI,本意是PI作為符號常量,程序中漏寫了#define PI 3.14159。而關(guān)于prinft和scanf的警告是由于沒有包含頭文件stdio.h。最終將程序改正為程序2b,則可以通過編譯。/* 程序2b */#include"stdio.h"#define PI 3.14159void main()float r,area;printf("本程序計(jì)算圓的面積,請輸入圓的半徑n");scanf("
13、;%f",&r);area=(float)PI*r*r;printf("半徑為%.3f的圓面積為:%.3fn",r,area);F注意:警告級錯誤不會停止編譯,可以連接,也可以執(zhí)行程序。而錯誤是必須要改正的。作為編程經(jīng)驗(yàn),除非錯誤明顯,一般每改正第1個錯誤后就要再進(jìn)行編譯。若還有錯,再改正第1個錯誤,.,直至排除全部錯誤。在錯誤列表中,“后面的”錯誤往往是前面的錯誤造成的,改了前面的錯誤,后面的錯誤有些也會跟著消逝。但有時(shí)改了前面的錯誤后,可能會出現(xiàn)更多的錯誤,遇到這種情況不要輕易懷疑是否前面改錯了,因?yàn)榭赡苁窃诟恼?,下面的程序面又出現(xiàn)了更嚴(yán)重錯誤,而這
14、個錯誤又引起了更多的新錯誤。3. 運(yùn)行程序在圖0-13所示的build菜單中,有一個帶有嘆號圖標(biāo)的菜單項(xiàng)Execute (執(zhí)行)example01.exe,(其快捷方式為Ctrl+F5),點(diǎn)擊它,或者按Ctrl+F5就可以直接運(yùn)行程序。如圖0-15就是運(yùn)行時(shí)的控制臺窗口。要運(yùn)行程序,還有另一個方法。它與上述方法不同,叫做調(diào)試運(yùn)行,在圖0-13 build菜單中的Start Debug(開始調(diào)試)子菜單中。這種運(yùn)行方法適于分步調(diào)試程序,觀察程序內(nèi)部運(yùn)行狀況,排除錯誤邏輯。這樣方法將在以后各章節(jié)的調(diào)試習(xí)題中加以介紹。不過兩種運(yùn)行程序方法的區(qū)別是,前者運(yùn)行完程序后,控制臺窗口等待按任意鍵關(guān)閉,讓程序
15、結(jié)果停留在窗口畫面上。而后者則在程序運(yùn)行完畢后直接關(guān)閉控制臺程序窗口。圖0-15 程序運(yùn)行的控制臺窗口口口圖0-16 拱形門w四、調(diào)試程序1.跟蹤程序的運(yùn)行下面以程序3為例,看看如何跟蹤程序的運(yùn)行。該程序的功能是計(jì)算一個拱形門的面積,最后輸出拱形門的面積和高。如圖0-16,假定拱形門是由半圓和正方形相接組成。/* 程序3 */#include"stdio.h"#define PI 3.14159void main()float w,area,heigh;printf("本程序計(jì)算拱形門的面積和高,請輸入拱形門的寬度n");scanf("%f&q
16、uot;,&w);area=(float)PI*w*w/2.0;area=area+w*w;printf("寬度為%.3f的拱形門面積為:%.3fn",w,area);heigh=w+w/2;printf("拱形門高度為:%.3fn",heigh);調(diào)試程序的方法主要以單步執(zhí)行程序?yàn)橹鳎部梢圆捎迷O(shè)置斷點(diǎn)的方法,依次運(yùn)行到斷點(diǎn)之處。無論是單步還是設(shè)置斷點(diǎn),都是為了觀察變量的內(nèi)部狀態(tài),結(jié)合窗口的輸出,判斷程序是否按照預(yù)定的邏輯正確執(zhí)行。跟蹤程序運(yùn)行的技術(shù)主要有使用功能鍵F5、F10、F11和設(shè)置斷點(diǎn)。F10的作用是單步執(zhí)行一條語句,但是不跟蹤進(jìn)入所
17、調(diào)用的函數(shù)(若有的話),這叫做“step over”單步越過(越過),而F11的作用是單步執(zhí)行,遇到函數(shù)調(diào)用時(shí),程序執(zhí)行點(diǎn)進(jìn)入函數(shù),這叫做“step into”單步進(jìn)入(步入)。F5的功能是從程序當(dāng)前執(zhí)行點(diǎn)開始一直向后執(zhí)行,直到遇到斷點(diǎn),或執(zhí)行到程序結(jié)束。F5常常配合斷點(diǎn)的使用。建立工程、輸入程序、編譯無誤后,按F10鍵,并再按2次F10鍵,集成環(huán)境的界面如圖0-17,對應(yīng)程序高級語言源程序的控制臺窗口見圖0-18.圖0-17 程序3在集成環(huán)境的運(yùn)行跟蹤界面圖0-18 配合圖0-17,程序3在跟蹤調(diào)試時(shí)的窗口界面在圖0-17中,源程序窗口左邊框上出現(xiàn)的黃色箭頭,代表程序即將執(zhí)行的語句(尚未執(zhí)行
18、),可稱之為程序當(dāng)前執(zhí)行點(diǎn)。由圖0-17程序的當(dāng)前執(zhí)行點(diǎn)可見,程序已經(jīng)輸出一行信息,故有圖0-17的執(zhí)行結(jié)果。程序行將執(zhí)行輸入語句。在圖0-17中,集成環(huán)境的下面是程序變量的顯示窗口??梢砸姷?,由于程序的當(dāng)前運(yùn)行點(diǎn)還沒有執(zhí)行給變量賦值語句,所以變量中的數(shù)據(jù)是混亂的。再次按F10,發(fā)現(xiàn)程序的運(yùn)行點(diǎn)沒有變化,這是因?yàn)槌绦蛘趫?zhí)行輸入語句,轉(zhuǎn)向了控制臺的操作,等待實(shí)際的輸入,不輸入數(shù)據(jù),此語句就不能完成。此時(shí)編程者應(yīng)當(dāng)激活控制臺程序窗口,并輸入數(shù)據(jù)。例如輸入10<回車>.輸入回車后,控制再次回到集成環(huán)境,此時(shí)可以發(fā)現(xiàn),如圖0-19,變量窗口中變量w的數(shù)據(jù)變成了10,且為紅色(紅色說明剛剛
19、變化)。由此可斷定,輸入語句正確輸入了數(shù)據(jù)。圖0-19 變量的數(shù)據(jù)發(fā)生變化時(shí)的情景接下來2次按F10,變量area都發(fā)生了變化。程序當(dāng)前執(zhí)行點(diǎn)停在輸出語句上。點(diǎn)擊控制臺窗口圖標(biāo),激活控制臺窗口,發(fā)現(xiàn)尚沒有關(guān)于面積的輸出。點(diǎn)擊集成環(huán)境空白區(qū),激活集成環(huán)境,再次按F10,程序當(dāng)前執(zhí)行點(diǎn)移到下條語句。激活控制臺窗口后可以見到,面積信息已經(jīng)輸出。激活集成環(huán)境,用同樣的方法(按F10鍵),可以執(zhí)行計(jì)算拱形門高度的語句和輸出語句。當(dāng)程序的當(dāng)前執(zhí)行點(diǎn)執(zhí)行到源文件的結(jié)束(最后一個右大括號)時(shí),不能再使用F10鍵了,應(yīng)當(dāng)按F5鍵,否則,程序?qū)⒏欉M(jìn)入系統(tǒng)內(nèi)部代碼。F注意:F5鍵的作用是從當(dāng)前執(zhí)行點(diǎn)開始一直運(yùn)行到
20、程序結(jié)束或者遇到一個斷點(diǎn)。由此可見,程序是逐條語句順序執(zhí)行的,這是一種基本運(yùn)行模式。大家注意到,當(dāng)使用上述幾個功能鍵時(shí),集成環(huán)境會出現(xiàn)一個新的工具欄,如圖0-20,其各個圖標(biāo)的解釋見圖0-21.,其中大部分都有快捷鍵,當(dāng)把鼠標(biāo)停留在相應(yīng)的按鈕上時(shí),相應(yīng)的快捷鍵就會出現(xiàn)在提示中,在此不一一介紹。圖0-20 程序調(diào)試命令工具欄程序復(fù)位(重新開始)停止調(diào)試打斷連續(xù)的執(zhí)行改變代碼顯示當(dāng)前執(zhí)行點(diǎn)單步進(jìn)入( F11 )單步越過 (F10)退出函數(shù)(回到調(diào)用處)運(yùn)行到光標(biāo)處快速查看變量查看變量局部變量查看CPU寄存器查看內(nèi)存查看調(diào)用堆棧查看反匯編代碼圖0-21 調(diào)試命令工具欄個按鈕意義常用的仍然是中間幾個,
21、使用F10或F11等與使用工具欄相應(yīng)按鈕是一樣的。2. 排除邏輯錯誤邏輯錯誤的排除方法將放在后面各章中的樣例或習(xí)題中。五、工程項(xiàng)目的保存與再啟動當(dāng)工程項(xiàng)目沒有完成而需要暫停時(shí),可以保存項(xiàng)目,以便以后續(xù)作。1) 保存工程點(diǎn)擊“文件”菜單中的“Close Workspace”(關(guān)閉工作空間)或“Save Workspace”(保存工作空間)都可以保存工程,前者在沒有保存時(shí),給出提示保存。2) 打開工程點(diǎn)擊“文件”菜單中的“Open Workspace” (打開工作空間),在出現(xiàn)的對話框中,選擇正確的工程文件夾,后打開后綴為.dsw的文件。如圖0-22所示。另一個打開已有工程的方法是,點(diǎn)擊“文件”菜單中的“Recent Workspaces”(最近的工作空間),從列表中選擇。第3個方法是在windows資源管理器中,找到并打開相應(yīng)的工程文件夾后,雙擊后綴為.dsw的文件。用打
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建設(shè)工程質(zhì)量安全監(jiān)督人員考試題庫含答案
- 全國青少年文化遺產(chǎn)知識大賽(小學(xué)組)參考試題庫(含答案)
- 年產(chǎn)1000萬件醫(yī)療用品及20000噸醫(yī)用復(fù)合材料建設(shè)項(xiàng)目可行性研究報(bào)告寫作模板-申批備案
- 2025年江西機(jī)電職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年武漢鐵路橋梁職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年曲靖醫(yī)學(xué)高等??茖W(xué)校高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 2025年新疆工業(yè)職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 專題01 名詞(第02期) 帶解析
- 部編版語文五年級下冊第13課《人物描寫一組》精美課件
- 2025工業(yè)研發(fā)設(shè)計(jì)軟件行業(yè)趨勢分析與發(fā)展前景
- 2024-2025學(xué)年廣東省深圳市南山區(qū)監(jiān)測數(shù)學(xué)三年級第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 廣東2024年廣東金融學(xué)院招聘專職輔導(dǎo)員9人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 江蘇省南京鼓樓區(qū)2024年中考聯(lián)考英語試題含答案
- 兒科護(hù)理學(xué)試題及答案解析-神經(jīng)系統(tǒng)疾病患兒的護(hù)理(二)
- 15篇文章包含英語四級所有詞匯
- 王陽明心學(xué)完整版本
- 四年級上冊豎式計(jì)算300題及答案
- 課題研究實(shí)施方案 范例及課題研究方法及技術(shù)路線圖模板
- 牙髓炎中牙髓干細(xì)胞與神經(jīng)支配的相互作用
- 【2022屆高考英語讀后續(xù)寫】主題升華積累講義及高級句型積累
- 西方法律思想史ppt
評論
0/150
提交評論