1.1.找出錯誤來源
1.Debug的第一步: 找出問題的來源
當面對一個從沒見過的issue, 最困難的在於不知從何開始下手
必須先知道對手(問題發生的源頭)在哪
2.做法
1.複製問題
在開始追蹤前, 問題要先可以被隨心所欲地重現
製作最小化的測試範例
2.推測問題的來源
以將問題發生點限縮到某次git commit為目標
用git checkout到先前的commit以確定問題的出現
確定問題是因為這次的change, 還是這個問題本來就一直存在
用git bisect來找出問題開始發生的commit
如果確定此問題是在某個coomit後出現的, 但是不確定是從哪個commit後出現的, 可以用git bisect來找出該commit
以將問題發生點限縮到某個fuction為目標
用UI的文字, console或是log上的訊息來推測程式在何處中斷:
向下搜尋
當問題已經被縮小到某個function, 裡面又呼叫了許多了子function, 必須確定問題是在哪個子function出現, 可以搭配下面的方法:
print
write log
註解掉
Last updated
Was this helpful?