1. 程式人生 > >Dev C++單步除錯/debug詳細圖解

Dev C++單步除錯/debug詳細圖解

dev下載

拿當前藍橋杯所使用的5.4.0版本Dev C++舉例
藍橋杯官網下載地址
只能安裝一個版本的dev 如果之前安裝過需要先解除安裝原有版本

舉例

來一道簡單的題輸入兩個整數A, B 輸出A+B的和
資料保證輸入的A和B都在int範圍內
既然是int就拿int變數存了,附帶一段看似正確的程式碼

#include <stdio.h>

int main()
{
	int a, b;
	scanf("%d%d", &a, &b);
	int c = a + b;
	printf("%d\n", c);
	
	return 0;
}

在這裡插入圖片描述


輸入2和5 輸出7看似答案正確了
如果這是一道題你將會收到一個Wrong Answer 為什麼呢
在這裡插入圖片描述
當輸入2e9+2e9之後會發現結果輸出了一個負數(2e9是在int範圍內的整數)
當發現程式出錯而不知道錯在哪裡的時候就需要單步除錯來找出錯誤了

單步除錯方法

在這裡插入圖片描述
想要使用dev編譯器進行單步除錯寫程式碼的時候就需要建立為專案 而不能是單個的檔案
點選檔案-新建-專案
在這裡插入圖片描述
選擇ConsoleApplication(終端應用程式也就是黑色的框) 名稱自己定一個
在這裡插入圖片描述
選擇一個專案儲存的路徑 儲存就建立完成了
在這裡插入圖片描述
可以在左邊看到專案 點+展開雙擊main.cpp將程式碼貼上進去

在這裡插入圖片描述
點選程式碼左側可以將當前行新增斷點


斷點的作用就是當除錯時程式碼執行到斷點將會停止下來 等待你下一步指令再繼續執行
在這裡插入圖片描述
新增好斷點後按F5或者點選除錯進入除錯模式 每次修改後需要先編譯再啟動除錯否則會除錯上次的程式碼
在這裡插入圖片描述
進入除錯模式後當前執行到的位置將會變成藍色 左側會多出一個除錯視窗 用來監視變數 下面會多出一些按鈕 作用等用到再講
在這裡插入圖片描述
在左側的除錯視窗新增兩個變數監視 現在就可以看到兩個變數當前的值了(46和這個奇怪的數字是因為新的變數未被初始化記憶體位置的原數值)
在這裡插入圖片描述
按F7或者點下一步會發現一點反應都沒有這是因為當前需要我們輸入數字了 當輸入完成後會自動向下執行一行
在這裡插入圖片描述
輸入剛才出錯的資料兩個2e9會發現藍色的執行到c = a + b的哪一行 並且a和b成功賦值2e9說明接受沒有問題
在這裡插入圖片描述

新增變數c的監視並按下F7再執行一行發現c的值被改為了一個負數 找出錯誤所在 因為C/C++的int變數範圍為-2147483648到2147483647 兩個2e9的數值相加超出範圍
在這裡插入圖片描述
當找出錯誤後按F6或停止執行退出除錯 修改程式碼內變數型別為long long(範圍-9e18到9e18) 接受和輸出改為%lld再次輸入兩個2e9發現答案正確

小結

單步除錯是最常用的查詢程式碼bug的方法 可以清楚的看到程式碼內部變數儲存情況或者執行到哪個位置發生錯誤 如果程式沒有按照預期執行則發現錯誤
這裡只說了F5開始除錯 F6停止除錯 F7執行到下一行
還有跳過按鈕(執行到下一個斷點停止) 跳出函式按鈕(當在函式內部時執行到函式結束停止) 這裡不再一一說明
切記除錯之前需要先按F8進行編譯否則會除錯上次的程式碼!!