| [ LiB ] |
Ruby comes with a debugger, accessible on the command line, for stepping through problems with programs (see Figure 9.1). Type the following to access it:
Ruby r debug MyProgramScript.rb
The debugger has a number of useful commands for, well, debugging a Ruby program. These are listed in Table 9.1.
| Command | Use |
|---|---|
| break | Set breakpoint at specified line or method |
| watch | Set a watchpoint for an expression |
| catch | Set a catchpoint for an exception |
| delete | Delete breakpoints or watchpoints |
| display | Set display expression to be printed when program stops |
| undisplay | Unset display |
| cont | Continue program execution |
| step | Step forward in the program until the next source line |
| next | Step forward in the program until the next source line. Treat method calls as one instruction |
| list | List line of source code |
| up | Select stack frame that called current stack frame |
| down | Select stack frame called by current stack frame |
| finish | Execute until selected stack frame returns |
| trace | Turn trace mode on or off |
| quit | Exit debugger |
| var global | Show global variables in current stack frame |
| var local | Show local variables in current stack frame |
| var instance | Show instance variables of the given object |
| var const | Show constants of the given object |
| method instance | Show methods of the given object |
| method | Show instance methods of the given class or module |
| thread list | Show thread list |
| thread current | Show current thread |
| thread | Switch to a given thread |
| thread stop | Stop the given thread |
| thread resume | Resume the given thread |
| p | Evaluate the given expression in current stack frame and show its value |
| help | Print debug commands |
| else | Evaluate input in the current stack frame and show its value |
| [ LiB ] |