Ruby In Steel Tutorials
Back toRuby Debugger Enhancements - Conditional Breakpoints, Tracepoints and more
The ultra-fast Cylon Debugger is Ruby In Steel has a huge range of debugging features. Here are a few that you may have missed...

Cylon, our fast debugger is unique to Ruby In Steel Developer. It is not an open source product and it is not available with any other IDE. Its two most important features are its speed and accuracy. It offers debugging in plain Ruby or ‘embedded Ruby’ (Rails templates) with step into, step out, step over, drag-and-drop watch variables, drill-down variables (to look inside complex objects) in the Watch, Locals and Autos Windows, plus ‘hover and drill-down’ variable expansion and in the Code Editor and integrated Ruby Console. It provides call-stack navigation, a breakpoint window, a quick watch window and an immediate window to evaluate expressions while debugging. For an overview of these features see ‘Debugging Ruby With Cylon’.
Change The Values Of Variables
When stopped at a breakpoint you may edit the values of variables in debug windows such as Watch and Locals. Just select a variable and click to put it into Edit mode...

You can even change the type of a variable in this way. Here I have selected the Fixnum, x, and I am assigning to it the Treasure object, t1...

Now, x has been assigned t1 and its class type is now Treasure rather than Fixnum...

Break On Exception
When an exception occurs, it may be more useful to be able to stop and debug it using the usual range of debug windows. Now you can...

Break On Hit Count
If you want to break only after a specific piece of code has been executed a certain number of times, add a Breakpoint Hit counter...

Conditional Breakpoints
If you only want to break when a condition (a test of one or more values) is met, create a Conditional Breakpoint...

Run Macro On Break
You can attach a macro to a Breakpoint - for example, you could write or record a macro to do anything from popping up a dialog box to inserting comments into your code - and this will run when the breakpoint is hit...

Tracepoints
There may be times when you want to be alerted that a piece of code has executed but you don’t want execution to break. You can do that by adding Tracepoints...

When tracepoints are met they will print messages without breaking (here I can see that my tracepoint has executed twice so I can tell that two Thing objects have been initialized)...


