At 12:47 PM 3/2/2017, you wrote:
Content-Transfer-Encoding: base64Hi Ken,

You may want to use SET COVERAGE at the beginning and turn it off at the end of the method that errors, and add that log, of it exists to your error logging. You'll see what lines for called and which iteration it was on.

Sometimes, forgetting to LOCAL a variable changes it in a function called later.

Yup. See my responses to others.

Thanks.


Tracy

On March 2, 2017 12:24:43 PM EST, "Fernando D. Bozzo" <[email protected]> wrote:
>Hi Ken,
>
>Seems a difficult one to trace, but just in case I give you some ideas
>based on personal experience with strange errors:
>

ˆH[™›ÈÛÛXÝYۈH\€ror rutine, put it in a try/catch that
>adds
>info to a var in a step by step basis, so you later can log it to a
>file.
>Must be bomb proof. I've once found an error there when iterating tge
>stack
>array, with some fields that normally are null but somerimes are not.
>In
>any case, an error there must not hide the real error.
>

ˆÈ›Ýtrust UI controls to call or not a method, add validation in
>the
>methods called from UI so even if you call them from VFP command line,
>if a
>condition is noot meet, the method is not executed. Normally can be
>done an
>enabled_funtionallity() like method that can be used by the UI to
>enable/disable controls and the same method can be used on the business
Y]Ùț܈HØ[YHÛØ[‚‚„­âF†P worst situation, you can generate log info in real time while
>the
\Ù\ˆ\ÈÛܚÚ[™Ë[™Ø]™H][ÈHX›HÚ]h info about controls used
>(important events like click), screens loaded/unloaded, some meaning
>variables and timer events may be, to have some context about executed
>order.
>Analyzing it later can give you some inside about how the user
>interacts
>with your app.
>
>Once, many years agi, a user notified a bug on which when loading the
main
ØÜ™Y[ˆ[ÛÛX›Ø›Þ\ÈÚ\™H›[š‹…F—&VBöbæ÷Bfnding the bug days later I did go with the user to watch
>him
Ú[H[\š[™È[ˆH\‹‹‹‹ˆ[™›Ý[™]H@ser while the app
>was
ØY[™ÈY][\‹[\‹[er, enter,....., many times to bypass
B›ÙÈØÜ™Y[‹€ut all that enter keystrokes where present in the keyboard
Y™™\‹Ú]Ø]\ÙYHÛÛX›Ø›Þ\ÈțÝÚÝÈZ\ˆefault options.
>Solution was a clear typeahead before showing the UI :D
>
>
[‹ÌË̌MÈ
NNˆK‹’Ù[ˆX˜›H€ <[email protected]> escribió:
‚FòföÆÆ÷rWg&öÐ yesterday evening, now that I'm back at work:
‚ƒâF†Rcode in question is a FOR ... ENDFOR loop that iterates an array,
>with
>> the loop limiting value being the number of rows in the array, and
>there is
ˆ›Ý[™ÈÚ][ˆhat loop that removes or adds rows or columns to the
\œ€ay.
>‚—Bw2§W7C £ãà£ãâdõ"Òç‚ÒDòÄTâ…D„•4dõ$ÒæðMail.aSortList,1)
>>       thekey = THISFORM.oMail.aSortList(m.x,10)  && "array dimensions
>[˜[Y‚€£€€€€ ** More inoffensive code here.
ˆS‘“Ô‚‚ˆ\ÈIݙHÀaid, I can't reproduce this error myself but I've seen it
>™\ܝYžH^H\œ›Üˆ[™\ˆÚXÙH[ˆÛÈ^\ˈÛÈHdon't know if
B‚—FW&F­öâf­ÆVBöâF†Rf—'7B&÷rðr some later row of the array.
>‚2’ÖVçF­öæVBV&Ɛer, my initial assumption that the array was
>supposed
> to have 5 columns was incorrect, because I was looking at the wrong
>control.
>‚’wfRæ÷rfW&­f­VBF†B­âF†s case, when the problem code executes,
>this
>\œ˜^HØ@n only contain 10 columns:
>>
>> 1. It is a predefined property of the oMail object (based on the
Ý\ÝÛB‚6Æ70, and defined in a .prg file) and is DIMENSIONed as (1) at the
>outset.
>>
>> 2. It is then populated by a SELECT [10 specified fields] FROM
>[variable
ˆX›KØÝ\œÛܗH‹€. INTO ARRAY expression with no WHERE clause.
>‚2âÀthough the name of the FROM table or cursor is variable, the
>ÜXÚYšYYšY[È\™H›Ý[™H^™\ÜÚ[ۈÙ\Ènot use AS clauses
>to
ˆÚ[™ÙHH˜[Y\ÈوH™\Ý[fields or supply default values for
>them.
>\™Y›Ü™Kif a specified field did not exist in the FROM table, an
>error
>ÛÝ[™HÙ[™\˜]Y]]Ú[ˆ›ÈÝXÚ\œ›Ü€ occurs.
>>
>> 4. It is not possible for the FROM table to contain no records when
B‚öffVæF­ær6öFRW†V7WFW0, because in that case the code that generates
B‚e OM table would display a message for the user stating that the
>query
>›ÙXÙY›È™\Ý[È[™[وH™[]@d controls on the form would
™Bˆ\ØX›Yˆ\ÈH™\Ý[, the method containing the SELECT ... INTO
T”VBˆ^ression would not be called, the list control's array rowsource
>would
ˆÛ۝Z[ˆ›È™XÛܙË[™H\ÝÛ۝›Û's sort method, where the
\œ›Ü‚ˆØØÝ\œËÛÝ[›Ý™Hcalled.
‚ƒâ6ò’Ò6öæf­FVçBF†BF†R'&’6âöæÇ’€ave 10 columns (no more
>and no
ˆ\ÜÊH]HÚ[Ú@re the error is generated.
>>
>> Thus the only "possible" sources of an "array dimensions invalid"
>error,
ˆYˆhe error did indeed occur on the line indicated by the trace,
ÛÝ[™N‚€£¸Q¡”M1
P€¸¸¸%9Q<IId•áI•Ìsion somehow generated fewer
ÛÛ[[œÂƒâF†âvW&R7V6­`ied in its field list.
‚ƒâ"âF†RW6W"v26öÖV†÷r&ÆP to induce one of the disabled GUI
Û۝›ÛȏˆÛÛYZÀw call the sort method when there was no data to sort.
>
>ˈSSŠ
H™]\›™Y[ˆ[˜Ûܜ™Xݙ\Ý[\ÈÈH[X€er of rows in
B‚'&’GW&­ærF†R—FW&F­öâÆö÷à£à
>[وÜÙH[™ÜÈÚÝ[™H[\ÜÜÚX›K‚€£Q¡”Ðhird possibility is that the trace provided by ASTACKINFO() is
>wrong.
ˆ[ˆ^H\XØ][ۈHœ™\]Y[HÈÙYH™@ry strange things with error
ˆ˜XÙ\ËÝXÚ\ÈÙ]™\˜[evels of code that should be in the stack
>not
ˆ™Z[™È€eported. I have also seen, in the debugger, that errors don't
ˆ™XÙ\ÜØ\š[HœÝ\™˜XÙHˆ[[YYX][H[™H[™Hـ code that generates
>them
>> may not be the line on which the debugger stops.
>‚F†W&R6÷VÆBÇ6ò&R6öÖWF†­æp wrong with my assumptions regarding how
ˆ™XYH€ace. In the case of the issue I've been talking about, the
˜XÙBˆÛ۝Z[œÈH›ÛÝÚ[™È[™\΂‚ˆ]™[ˆ
H Program File: c:\cil data 2\genmaillst.sct  Module/Object:
>> genmaillst.listdisplay.resortlistbox  Source File: c:\cil data
>> 2\genmaillst.sct  Line Number: 86  Line Contents: thekey =
ˆTѓԓK›ÓXZ[˜TÛܝ\Ý
L
Bˆ]€el: 6  Program File: c:\stic foxpro framework\base
>> classes\sticbase.vct  Module/Object: genmaillst.listdisplay.error
>Source
>> File: c:\stic foxpro framework\base classes\sticbase.vct  Line
>Number: 23
>> Line Contents: DO FinalSTICError WITH 0, LINENO(1), theprogram,
>MESSAGE(1),
ˆˆ‚ƒà ø$É•…Ñ¡¥Ì…Ì耉]¡•¸Ñ¡”±¥¹”½˜½‘”…Ё0evel 5 was executed, the
>T”“ÔŠ
HY]ÙوHؚ™XÝthat contains that code was triggered,
>as
>ÚÝۈ[ˆ@vel 6. Therefore, the error occurred in the stated line of
ÛÙBƒâ­âÆWfVÂRâ £ãà£ãâöb6÷W'6RÂF†Rv’Fò†æFÀe this is to add code to test the size of
>the
ˆ\œ˜^H€efore trying to iterate it, which I have now done. But I am
>still at
>HÜÜÈÈ[™\œÝ[™ÝÈH\œ›ÜˆÛÝ[occur.
>‚F†æ·2à£ãà£ãâ¶Và£à((´´€)M•¹Ð™É½´µä¹‘ɼid device with K-9 Mail. Please excuse my brevity.

[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/F5.98.21189.E3B68B85@cdptpa-omsmta03
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to