Focus on data that actually matters
Objects can have many properties, but when debugging, not all of them are useful to you. You’re usually interested only in a select few. For a Customer class, it might be the ID and FirstName properties. For a Point in 3D space, it might be the X, Y, and Z fields. With OzCode's Reveal feature, you can finally focus on the data that actually matters.
In order to run this demo press the Reveal button in the demo application.
Notice that a breakpoint has been triggered. It seems that although we're in a method that should only be used to send packages outside of the country (US), somehow we got a package that should have been shipped using a local shipping method:
Because nobody bothered to implement
ToString on the Customer class, initially, the HUD will use the default
ToString implementation, which just shows the type name, and is not very useful. Further, traversing the Customer class in the DataTip can be a pain, because it contains so many fields.
Hover your mouse over
customer for the DataTip window to appear. Then expand the cutomer fields by using the '+'.
Lastly find "FirstName" and click on the "star" next to it:
Notice how the DataTip window and the HUD updated accordingly:
And similarly use the star to add the "SurName" property as well.
Now use the Call Stack Window to go back to the caller of the method, and use the DataTip again to see how many customers are from Paris (including Jose Duke). Since they're all instances of Customer, the FirstName which we've previously starred is shown automatically.
Let's add some more information to each customer: From the DataTip window - expand one of the customers, then expand the Address property and star the Country, State and City properties. Lastly toggle the star next to Address as well - in order to show Address information as part of Customer (making it much easier to see the nested information!).
Collapse the current customer and look at the customer list: Now we can see all of the selected customers and their addresses.
Finding the bug and the affected customers should be simple.