程式碼除錯是程式設計師必須掌握的一門技巧,掌握程式碼除錯對以後學習,錯誤排除,原始碼研究等都有很大的幫助。
前言
再牛的程式設計師也沒法一口氣把程式碼全部寫正確,通常做法就是寫一小段然後驗證程式碼正確性,再繼續寫下一段,這樣能保證程式碼不會錯得太離譜。怎麼衡量一小段程式碼呢?在你覺得這段程式碼沒有十足把握的情況下就應該停下來驗證一下。
除錯的本質是確認你認為正確的事情確實是正確的,這次來介紹一下 Vs中除錯程式碼的 N 種姿勢,更多C/C++教程轉接專欄教程。
斷點除錯常用術語
“單步進入”step into:就是單步執行,遇到子函式就進入並且繼續單步執行;
“單步執行並跳過”step over:是在單步執行時,在函式內遇到子函式時不會進入子函式內單步執行,而是將子函式整個執行完再停止,也就是把子函式整個作為一步。
“單步執行並返回”step return:就是單步執行到子函式內時,用step return就可以執行完子函式餘下部分,並返回到上一層函式。
“繼續執行”:即跳過此斷點繼續執行。
簡單的例子
先來看一個簡單的程式碼,如下,程式碼很簡單,結果顯而易見,咱們來除錯一下這個程式碼
1,進入除錯
進入之後,在main函式的第一行,會出現一個黃色小箭頭,代表著此時程式碼執行到的位置。
此時我們會在下面的視窗中看到變數,目前在記憶體裡面的資料及型別
當我們繼續執行時,會發現區域性變數視窗中的變數的值發生了改變,很直觀即可看到結果
當執行到函式呼叫語句時,會進入函式內部執行,而且區域性變數裡面會同步顯示函數里面的變數資訊
函式執行結束,會返回到呼叫處,而且區域性變數視窗會顯示返回值資訊
這就是逐步除錯一個簡單的流程,你學會了嗎?
逐步除錯配合斷點
再來看一個簡單的程式碼,如下
如果按"F11"使用單步除錯,那麼我們需要在迴圈處,按10次才能執行到printf語句。我們可以結合斷點,快速跳過迴圈。
1,新增斷點
把游標移動到需要加斷點的行,然後按"F9",或者用滑鼠在需要加斷點的行前面的灰色區域點一下。
2,跳過迴圈
首先逐步除錯到迴圈處,然後按"繼續"即可直接執行到最近的斷點所在的行
點“繼續”直接跳轉到斷點處
重複新增斷點的步驟即可
好了,簡單除錯就介紹到這裡,大家可以先練習一下,後面介紹複雜的示例。喜歡的不如點個三連吧。