Skip to content

Instantly share code, notes, and snippets.

@jhang-jhe-wei
Forked from elrayle/byebug_commands.md
Last active July 4, 2021 15:03
Show Gist options
  • Save jhang-jhe-wei/04379a51309c0531ea4794f65fbe9aee to your computer and use it in GitHub Desktop.
Save jhang-jhe-wei/04379a51309c0531ea4794f65fbe9aee to your computer and use it in GitHub Desktop.
Byebug 備忘錄

說明相關指令

指令 別名 範例 說明
help h h 列出全部指令的說明
help cmd h cmd-alias h n 列出 next 這個指令的說明

執行下一步相關指令

指令 別名 範例 說明
next n n 在同一個區塊或方法中往下執行 1 行
  n 3 在同一個區塊或方法中往下執行 3 行
step s s 進入區塊或是方法執行 1 行
  s 3 進入區塊或是方法執行 3 行
continue c c 執行到下一個斷點或是程式結束
  c 43 執行到第 43 行(或是在下一個斷點停止)
continue! c! c! 執行到程式結束(遇到斷點也不會停止)
finish fin fin 執行所有 frame 中的程式(完成由 step 進入的程式碼)

斷點相關指令

指令 別名 範例 說明
info breakpoints i b i b 列出所有斷點的編號、啟用與否和放置位置
break b b 33 在目前檔案的第 33 行新增一個斷點
disable breakpoint dis b dis b 2 關閉編號 2 的斷點(如果沒指定編號則代表關閉所有斷點)
enable breakpoint en b en b 2 開啟編號 2 的斷點(如果沒指定編號則代表開啟所有斷點)
delete del del 1 刪除編號 1 的斷點(如果沒指定編號則代表刪除所有斷點)
condition cond cond 3 i > 3 為編號 3 的斷點新增 i > 3 的判斷式
  cond 3 刪除編號 3 的斷點判斷式

監控相關指令

在程式每次被斷點中斷時都會呈現監控點上的程式碼回傳值。

指令 別名 範例 說明
info display i d i d 列出所有監控的編號、啟用與否和其程式碼
display disp disp arg 新增一個每次被斷點中斷時,都會呈現 arg 數值的監控點
  disp 列出所有監控點的編號、程式碼和其回傳值
disable display dis d dis d 2 關閉編號 2 的監控點
enable display en d en d 2 開啟編號 2 的監控點
undisplay undisp undisp 1 停止顯示編號 2 的監控點(無指定編號則代表停止顯示所有監控點)

變數相關指令

指令 別名 範例 說明
var args v a v a 顯示當前方法的參數名稱和值
var local v l v l 顯示當前範圍(區塊或是方法)的所有變數名稱和值
var instance v i v i 顯示實例化物件中的變數名稱和值
  v i obj 顯示 obj 這個實例化物件中的變數名稱和值
var const v c v c 顯示所有的常數名稱和值
  v c Klass 顯示 Klass 這個 class/module 裡常數名稱和值
var global v g v g 顯示所有的全域變數名稱和值
var all v all v all 顯示所有的變數
eval eval eval i 當變數為 byebug 關鍵字時,可以用這種方式取得值

追蹤和定位相關指令

指令 別名 範例 說明
list= l= l= 顯示目前執行位置的前 5 行和後 4 行程式碼
list l l 8-20 顯示第 8 行到第 20 行的程式碼
  l 顯示往後 10 行的程式碼(再輸入一次 l 會在往後 10 行)
list- l- l- 顯示往前 10 行的程式碼(再輸入一次 l 會在往前 10 行)
where or backtrace w or bt w 顯示目前停止的位置其上下文(由誰呼叫等等)
  bt 顯示目前停止的位置其上下文(由誰呼叫等等)
frame f f 2 往上 2 層查看進入點

操作相關指令

指令 別名 範例 說明
edit ed ed 編輯當前執行的檔案
irb irb irb 開啟 irb
quit q q 離開 byebug
quit! q! q! 強制離開 byebug
restart restart restart 重新開始執行
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment