Changing the value of a simple variable while debugging may not seem all that remarkable. But how about changing the internal structure of objects right inside one of the debugging windows or even creating completely new objects while stopped at a breakpoint? This is what I mean by ‘dynamic debugging’ and it’s just one of the features that we’ve added to the new version of the Cylon debugger.
If you are used to debugging C#, you may take for granted the ability to change the value of a selected variable while debugging. The Cylon debugger for Ruby not only lets you change the value of a variable...
But also its data type...
It doesn’t need to be a simple data type either. You could change a simple String variable, for example, into any object type...
...such as an instance of a custom class...
You can even evaluate code to create new objects right inside the watch window...
Or, using the immediate window you could create new variables and assign new objects to them...
...which can then be watched in the other debugging windows...
This is a simple example of a very powerful capability - allowing you to perform complex tests and trials by modifying a program during an active debugging session.
Dynamic Debugging is a feature of the forthcoming update to our Cylon Debugger in Ruby In Steel 1.2. The current beta (beta 2, available to registered users) only allows modification of simple data types (such as Strings and Fixnums). The next beta, which we will release within a week, will have the full dynamic debugging capabilities described above. For more information on the debugging enhancements in Cylon 1.2 see ‘Ruby Debugger Enhancements - Conditional Breakpoints, Tracepoints and more’.
Ruby In Steel 1.2 (which includes Cylon 1.2) will be a free upgrade to registered users of Ruby In Steel Developer.