搜尋

Debugging C program with Eclipse IDE

做為一個程式設計工程師,免不了在寫程式的時候遇到問題,然而最常見的問題為程式有Bugger。Bugger常常讓工程師傷透腦筋,甚至日以繼夜的在尋找惱人的Bugger。所以如何有效率地找到程式Bugger將是程式工程師必須具備的技能之一;本篇文章將介紹如何使用Eclipse的Debug Mode。

首先我們先來建立一個簡單的專案,其程式碼如下:

相信有學過程式基礎課程的人一看上面的三個檔案(main.cpp ; add.h ; add.cpp)馬上就能看出此程式架構與功能,其輸出結果為: 4.6。

了解上面程式後,接下來我們就來看如何在Eclipse上使用Debug Mode:

首先,先認識如何進入Debug Mode,我們可以在Eclipse介面上發現一隻綠色的蟲子,如底下圖片紅色框起來處,我們如果游標移過去,會出現Debug字樣。

點選進去後,程式會先進行編譯,如果編譯成功,系統會出現下圖詢問是否Switch至Debug perspective介面。

Switch至Debug perspective如下圖,其中我們可以看到紫色框處,如果紫框裡面呈現紅色方框,代表程式正執行到Breakpoint處(但Breakpoint尚未執行)。以我們現在的例子,目前程式正執行到main.cpp的第7行(藍色箭頭處),因為我們先前有在main.cpp的第6與第7行設下Breakpoint。顧名思義,Breakpoint就是我們想讓程式暫停的地方,讓程式進行等待然後做後續的動作,像是:

Step Over

Step Into

Resume

這些步驟我們後續會介紹

但如何設定Breakpoint呢?我們只要在欲讓程式停住在哪段程式的行數左邊地方點兩下即可設下Breakpoint。

繼續討論剛剛我們程式執行到main.cpp的第7行,如下圖,如果我們滑鼠游標移到x上,我們可以看到x目前的數值,以現在的例子來說,x的值為4.9406564584124654e-324,那為什麼不是我們所設定的1.2呢?承如之前我們所提的,程式停點尚未執行,程式只執行到停點的上一行,所以1.2值尚未傳給x。

Step Over介紹:

Step Over讓程式在同一檔案中從停點逐步執行,如果我們按底下紅框處,程式則會跳至main.cpp的第8行,代表第7行執行完畢,所以如果將游標移置x處,可以看到x值為1.2。如果再按一次紅框處,main.cpp則會跳至第9行。

Step Into介紹:

看到Into字眼,顧名思義,如果程式執行到有Function的地方,就會進入其執行的Function,下圖紅框處為Step Into的按鈕,以現在的例子來說,目前程式跑到main.cpp的第11行,如果我們執行Step Over,程式則會跑到main.cpp的第12行。

如果我們按Step Into,程式則會跑到add.cpp的第4行,如下。

Resume介紹:

簡單來說,Resume為讓程式從目前的Breakpoint執行到下一個Breakpoint,其按鈕如底下紅框,以現在的例子來說,我們分別在main.cpp的7與11設Breakpoint,執行Debug Mode後,程式會執行到main.cpp的第7行,如果我們按Resume後則會執行到main.cpp的第11行。

 

 

以上,我們實作例子來教讀者如何在Eclipse上執行Debug Mode,目前Eclipse所支援的Debug Mode功能已相當實用,像是 Step Over、Step Into、Resume以及游標移到參數上可以看到參數裡面的內容…等功能都是蠻實用的。有興趣的讀者也可以照著說明親自動手玩看看,相信會更熟悉Eclipse的Debug Mode。

留言

請先登入後再回覆文章