Debugger

It doesn’t matter how easy a language is to use, it usually contains some bugs if it is more than a few lines long. To help deal with bugs, the standard distribution of Ruby includes a debugger. In order to start the Ruby debugger, load the debug library using the command-line option -r debug. The debugger stops before the first line of executable code and asks for the input of user commands.

Here are the debugger commands:

b[reak] [<file|class>:]<line|method>

Sets breakpoints

wat[ch] expression

Sets watchpoints

b[reak]

Displays breakpoints and watchpoints

del[ete] [n]

Deletes breakpoints

disp[lay] expression

Displays value of expression

undisp[lay] [n]

Removes display of n

c[ont]

Continues execution

s[tep] [n]

Executes next n lines stepping into methods

n[ext] [n]

Executes next n lines stepping over methods

w[here]

Displays stack frame

f[rame]

Synonym for where

l[ist][<-|n-m>]

Displays source lines from n to m

up [n]

Moves up n levels in the stack frame

down [n]

Moves down n levels in the stack frame

fin[ish]

Finishes execution of the current method

tr[ace] [on|off]

Toggles trace mode on and off

q[uit]

Exits debugger

v[ar] g[lobal]

Displays global variables

v[ar] l[ocal]

Displays local variables

v[ar] i[instance] object

Displays instance variables of object

v[ar] c[onst] object

Displays constants of object

m[ethod] i[instance] object

Displays instance methods of object

m[ethod] class|module

Displays instance methods of the class or module

th[read] l[ist]

Displays threads

th[read] c[ur[rent]]

Displays current thread ...

Get Ruby in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.