« 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/services/trackback/6a00d8341fba8753ef00e55470895f8834
Listed below are links to weblogs that reference When a "Watch Window" expression goes in and out of scope:
Comments
nice post... thanks for sharing useful resource...
Posted by: Software Development Company | Jun 4, 2009 1:34:35 AM
Thanks Jane,
You don't know how much hair this tip has spared me from pulling out (and I don't have much to spare ).
Enjoy!
Art
Posted by: Art Bergquist | Jun 4, 2009 11:34:22 AM
The comments to this entry are closed.




