Byebug:蟲蟲掰

程式開發,不論哪個領域,都一定會碰上錯誤。這種情況下,我們會用除錯器並排除錯誤。通常的用法是:

  1. 針對錯誤發生的地點設下斷點。在不同的環境有不同的下法。
  2. 當程式跑到斷點的時候,預期是會停下來的。如果不會,就是個要找出的錯誤。
  3. 在暫停的地方,用指令列來檢查、變更各種變數,以確定是否符合預期。
  4. 如果需要,可以叫除錯器下與步驟相關的指令:可能是下一步、也可能是走到某段函式的結尾、或著接下來的全部步驟......

在 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

當然如果前提差得更多、就要把除錯器的位置放得更前面。