Debugging with RBD: Viewing variables during a TUI converse
jspadea 0600025FPV Visits (2678)
Greetings! RBD 8.0.1 has been out for a while now, so hopefully many of you have had a chance to try out the many new features. There's a great article covering these new features, including the debug features, but I'd like to add some of my own notes and thoughts, as well as get some feedback from you.
I'm starting this series of blog posts with an enhancement that Text UI (TUI) developers have been requesting for a good long while. We heard from many of you that you need access to the program's variables while a form is being conversed - the typical remark being "VAGen's ITF could do that!". You won't see the variables displayed by default, but you can now use the suspend button to make the debug stack and variables available. The reason we don't do this by default is we must tell Eclipse that we're suspended in order to get the core debug framework to display the variables - and by telling Eclipse to suspend, it causes focus to be switched from the TUI form window back to the RBD window. Our internal usability testing quickly showed this to be extremely annoying - especially since you only sometimes need to look at the variables. We decided that it works a lot better when the user "suspends" manually, whenever the variables are needed. All you have to do is select the main thread and click the suspend button:
Now you can see the function stack as well as the variables. Some of the other toolbar buttons are also enabled, and whichever button you press last will be the action performed when the converse ends. For example, if you click the "step into" button, the debugger will stop on the line following the converse statement, after the converse has ended - it behaves as if the step into button was performed on the converse statement itself.
Also worth noting is that you can change the values of variables while the form is conversing - and if it's a form field variable you'll see the updated value in the form immediately.
I hope this new feature makes it easier to test your applications. Does it meet all your needs? Is there any part of this enhancement that you think could be better? We'd love to hear!