1、寫一個有bug的簡單程序。
創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計,泌陽網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:泌陽等地區(qū)。泌陽做網(wǎng)站價格咨詢:18980820575
2、運行程序,產(chǎn)生錯誤,然后進行debug調(diào)試。可以按照圖示進入調(diào)試,也可以直接按快捷鍵F10。
3、首先憑借直覺,設(shè)置斷點。
4、觀察變量值的變化,是否在要求的范圍內(nèi),或者運行時程序是否產(chǎn)生內(nèi)存溢出;最終發(fā)現(xiàn)在*a=1出產(chǎn)生錯誤,改正后,再運行。
5、修改程序后重新編譯,若無錯誤,即完成,若有錯誤,繼續(xù)進行第三步和第四步,直至錯誤消除或者產(chǎn)生正確結(jié)果為止。
Restart(Ctrl+shift+F5):此debugger功能將從程序的開始(第一有效行)處全速執(zhí)行,而不是從當(dāng)前所跟蹤的位置開始調(diào) 試,這時所有變量的當(dāng)前值都將被丟棄,debugger會自動停在程序的main()開始處.這時如果選擇Step Over(F10)就可以逐步執(zhí)行main()函數(shù)了.Stop Debugging(Shift+F5):此debugger功能將終止(所有)調(diào)試,并返回到常規(guī)編輯狀態(tài). Break(此功能常常在遇到調(diào)用函數(shù)的語句時可見.):此功能將在調(diào)試過程中的debugger當(dāng)前位置掛起程序的執(zhí)行,然后就可以在調(diào) 試狀態(tài)一修改程序的代碼,接著可以用Apply Code Changes(Alt+F10)來應(yīng)用修改的代碼到正在調(diào)試的程序當(dāng)中.如果,當(dāng)前(需要,待)可以(從DOS等窗口)輸入值,掛起后將不能再輸入.Apply Code Changes(Alt+F10):此功能可以在程序正在調(diào)試程序過程中應(yīng)用(掛起)修改后的源代碼.如,選擇Break功能并修改代 碼后,只要選擇Apply Code Changes(Alt+F10)就能將修改后的代碼應(yīng)用到正在調(diào)試的程序當(dāng)中.Show Next Statement(Alt+Num*):此功能將顯示程序代碼的下一條語句,如果源代碼中找不到,則在Disassembly窗口中顯示語句. 當(dāng)在Disassembly窗口中顯示時,可以單擊Disassembly 返回到源代碼窗口. Step Into(F11):此功能可以單步進入到在調(diào)試過程中所跟蹤的調(diào)用函數(shù)的語句的函數(shù)內(nèi)部.如,當(dāng)前語句是"d.Display()", 選擇Step Into(F11)后,Debugger將進入Display()函數(shù)內(nèi)部并停在Display()函數(shù)內(nèi)部的第一條語句上.(此時,就可以Step Over(F10)對Display()函數(shù)進行單步調(diào)試了.)Step Over(F10):此功能可以單步對所在函數(shù)單步調(diào)試,如果調(diào)試的語句是一個調(diào)用函數(shù)的語句時, Debugger將全速執(zhí)行所調(diào)用的函數(shù),單步(一步)通過所調(diào)用的函數(shù),Debugger停該調(diào)用語句的下一條語句上.Step Out(Shift+F11):此功能將使Debugger切換回全速執(zhí)行到被調(diào)用函數(shù)結(jié)束,并停在該函數(shù)調(diào)用語句的下一條語句上. 當(dāng)確定所調(diào)用的函數(shù)沒有問題時可以用這個功能全速執(zhí)行被調(diào)用函數(shù).Run to Cursor(Ctrl+F10):此功能將全速執(zhí)行到包含插入點光標(biāo)所在的行,可以作為在插入點光標(biāo)處設(shè)置常規(guī)斷點的一種選擇. 注意,當(dāng)光標(biāo)處不是一個有效的執(zhí)行語句時此功能將不起作用. Go(F5):此功能將全速執(zhí)行程序直到遇到一個斷點或程序結(jié)束,或直到程序暫停等待用戶輸入.
單步調(diào)試是指在程序開發(fā)中,為了找到程序的bug,通常采用的一種調(diào)試手段,一步一步跟蹤程序執(zhí)行的流程,根據(jù)變量的值,找到錯誤的原因。
在VC++6.0中的單步調(diào)試:
調(diào)試重要的幾個鍵:
F9在當(dāng)前光標(biāo)所在的行下斷點,如果當(dāng)前行已經(jīng)有斷點,則取消斷點.
F5調(diào)試狀態(tài)運行程序,程序執(zhí)行到有斷點的地方會停下來.
F10單步執(zhí)行程序.
CTRL+F10運行到光標(biāo)所在行.
F11和F10的區(qū)別是,如果當(dāng)前執(zhí)行語句是函數(shù)調(diào)用,則會進入函數(shù)里面.
SHIFT+F11跳出當(dāng)前所在函數(shù).
步驟:
1,保存為c或c++文件
2,根據(jù)斷點調(diào)試找到錯誤處。
3,采用F10或F11單步調(diào)試找到精確的錯誤處。其中f10是跳過函數(shù)調(diào)用,f11是進入函數(shù)體調(diào)試。一般是先用f10,確定函數(shù)輸入輸出是否正確(與自己想的一樣),如不一樣,則用f11進入函數(shù)體一步一步調(diào)試。
4,在調(diào)試過程中,肯定得監(jiān)視程序中的變量。在vc6.0的右下角有一個watch窗口,專門用來設(shè)置監(jiān)視變量。具體怎樣設(shè)置自己體會吧。在調(diào)試過程中,鼠標(biāo)輕輕放在變量上也會顯示該變量的值
5,vc6.0專門為調(diào)試設(shè)置了工具箱以方便調(diào)試的進行,打開的方法如下。右鍵——〉在debug(或調(diào)試)選擇項的勾勾上。
簡單說
F10 是逐行 在某條語句調(diào)用一個函數(shù)的時候 它不會進入(除非那里設(shè)有斷點)
F11 是逐步 它是會進入函數(shù)的 把程序細化到步
下面這段代碼
執(zhí)行到第三行時
F11是可以進入take函數(shù)的 F10則不能進入
int a=10;
a = 3
a = take();
a = 10;
int take(){
return 1;
}
scanf函數(shù)是阻塞,等待用戶輸入數(shù)據(jù)才能繼續(xù)
如果跳過scanf下面的調(diào)試無法進行