Byebug:蟲蟲掰
程式開發,不論哪個領域,都一定會碰上錯誤。這種情況下,我們會用除錯器並排除錯誤。通常的用法是:
- 針對錯誤發生的地點設下斷點。在不同的環境有不同的下法。
- 當程式跑到斷點的時候,預期是會停下來的。如果不會,就是個要找出的錯誤。
- 在暫停的地方,用指令列來檢查、變更各種變數,以確定是否符合預期。
- 如果需要,可以叫除錯器下與步驟相關的指令:可能是下一步、也可能是走到某段函式的結尾、或著接下來的全部步驟......
在 rails 裡面,我們會用 byebug 作為我們的除錯器。以這段程式碼為例:
foo = 9563
bar = false
if foo == 9563
if bar == true
byebug
budyguard.create()
end
end
byebug 這個小指令就是可以讓程式暫停的斷點。但是這裡不會執行 byebug,因為要啟動除錯器的前提是在 bar 為 true 的前提下成立,但這個前提不存在。
變成這樣就可以偵錯了:
foo = 9563
bar = false
if foo == 9563
byebug
if bar == true
budyguard.create()
end
end
當然如果前提差得更多、就要把除錯器的位置放得更前面。