今天主要介紹下這個(gè)軟件的調(diào)試功能。
對(duì)于編程學(xué)習(xí),可以說調(diào)試能力是最重要的技能,沒有之一!尤其是C/C++/Linux開發(fā),有相當(dāng)部分時(shí)間都會(huì)花在調(diào)試上,對(duì)于這部分后續(xù)還會(huì)有更加系統(tǒng)的總結(jié)。所謂調(diào)試程序,就是控制編譯器一行一行地執(zhí)行代碼,過程中可以清楚看到每個(gè)變量值的變化情況、函數(shù)的調(diào)用過程等,進(jìn)而發(fā)現(xiàn)程序中隱藏的錯(cuò)誤或者低效的代碼。
首先先確認(rèn)下你的Dev C++調(diào)試配置是否正常,有些很常見的問題提前確認(rèn)下。
1.工具欄中,選擇編譯選項(xiàng)
2.開啟產(chǎn)生調(diào)試信息,這個(gè)不開會(huì)導(dǎo)致無法進(jìn)入調(diào)試模式
3.error-begin No source file named xxx的錯(cuò)誤解決有些同學(xué)可能調(diào)試的時(shí)候會(huì)遇到,如果沒有可以跳過,方法是依次添加下邊的配置
-g3-static-libstdc++ -static-libgcc -g3gcc.exe -D__DEBUG__g++.exe -D__DEBUG__
4.正式開始調(diào)試,以下邊的代碼為例子,有電腦的同學(xué)可以直接實(shí)踐下
1#include?<stdio.h>
2
3int?main()?{
4????int?n,?cnt?=?0;
5
6????scanf("%d",?&n);
7????for(int?j?=?0;?j?<?n;?j?++)?{
8????????cnt?=?cnt?+?1;
9????}
10????printf("%d",?cnt);
11
12????return?0;
13}
添加斷點(diǎn),這是調(diào)試功能的核心,下邊是幾個(gè)步驟:
1.左鍵添加斷點(diǎn),主要是在比較容易出錯(cuò),或者有懷疑點(diǎn)的位置
2.添加變量查看,可以實(shí)時(shí)看到代碼中變量的值,非常的直觀
3.點(diǎn)擊②后,會(huì)有③窗口,添加代碼中變量名即可
4.輸入回車后,在左側(cè)④調(diào)試窗口就會(huì)出現(xiàn)變量的實(shí)時(shí)值
點(diǎn)擊調(diào)試或者按F5啟動(dòng)調(diào)試功能,會(huì)出現(xiàn)黑色的控制臺(tái)窗口
此時(shí)根據(jù)代碼,代碼會(huì)走到第六行scanf等待你的鍵盤輸入
這里我們輸入5回車
斷點(diǎn)行會(huì)變?yōu)樗{(lán)色,意味著此時(shí)代碼運(yùn)行到第8行并停止
左側(cè)變量n由于執(zhí)存儲(chǔ)了鍵盤的輸入變?yōu)榱?,cnt由于還沒有執(zhí)行仍為0
點(diǎn)擊下一步,代碼會(huì)繼續(xù)執(zhí)行一行,根據(jù)邏輯會(huì)運(yùn)行到for循環(huán)入口,cnt由于執(zhí)行了一次變?yōu)榱?,而n由于沒有操作所以還是5
另外幾個(gè)調(diào)試功能的作用(都可以動(dòng)手實(shí)踐下):
-
- 下一步:控制編譯器向下執(zhí)行一行語句;單步進(jìn)入:功能和“下一步”按鈕類似,不同之處在于,當(dāng)程序中調(diào)用某個(gè)自定義的函數(shù)時(shí),此按鈕可以進(jìn)入到函數(shù)內(nèi)部,繼續(xù)調(diào)試函數(shù)內(nèi)部的代碼,而 “下一步” 按鈕不會(huì);跳過:繼續(xù)執(zhí)行程序,遇到下一個(gè)斷點(diǎn)暫停執(zhí)行;停止執(zhí)行:停止調(diào)試程序。
當(dāng)最后執(zhí)行完for循環(huán),printf函數(shù)會(huì)輸出結(jié)果5到控制臺(tái),左側(cè)cnt值也增長(zhǎng)到了5
這就是一次相對(duì)比較簡(jiǎn)單的調(diào)試了,大家可以親自動(dòng)手實(shí)踐下,可能會(huì)到各種奇怪的問題,都非常正常,開發(fā)本就是解決問題的一個(gè)過程,這個(gè)調(diào)試雖然簡(jiǎn)單,但是基本的原理就是這樣了,對(duì)于很多項(xiàng)目中都可以用到。