« Debugging errors that occur only in production code | Main | Don't Think "Tomorrow"; Think "A Decade from Now" »
August 25, 2008
When a "Watch Window" expression goes in and out of scope
It used to be extremely frustrating to me when a "Watch Window" expression went in and out of scope. Now, I simply employ a technique I learned in Nancy Folsom's short but excellent book Debugging Visual FoxPro Applications (http://www.hentzenwerke.com/catalog/debugvfp.htm).
On p. 53, Nancy indicates that:
"If you know the value of the expression you're looking for, you can create a 'Break when expression is true' breakpoint and enter a conditional IIF() in the Expression field. The expression would look like the following:
IIF(TYPE('SomeExpression') = 'C', SomeExpression = SomeValue, .F.)
"This expression will cause the program to be suspended only when the value of the expression is what you expect."
Here's an example of an expression:
IIF(VARTYPE(RECCOUNT('lv_WDates')) = 'N', RECCOUNT('lv_WDates') = 6, .F.)
Michael Cummings of the Los Angeles FoxPro Users Group (LA Fox) suggested an even better technique [viz., test for VARTYPE(…) = 'U']; here's a translation of the above:
IIF(VARTYPE(RECCOUNT('lv_WDates')) = 'U', .F., RECCOUNT('lv_WDates') = 6)
Testing for an 'U'ndefined data type obviates having to get the variable's data type "right" in the breakpoint expression.
Patrick O'Hara of the Chicago FoxPro User/Developer Group (CFUDG) reminded me that [Ctrl + B] brings up the Breakpoints dialog box.
Posted by abergquist on August 25, 2008 | Permalink
TrackBack
TrackBack URL for this entry:
http://www.typepad.com/t/trackback/384091/32723588
Listed below are links to weblogs that reference When a "Watch Window" expression goes in and out of scope:




