1. fShowError()
I got this error from a bound program and can't find the routine failing.
It's not in my program nor is it in win32lib.ew. Anyone know where this
routine is located? I have the complete dump if you need it.
C:\AcuTrack\bin\icr170.exe:558 in procedure fShowError()
attempt to divide by 0
pParams = {{103'g',101'e',116't',72'H',97'a',110'n',100'd',108'l',
101'e',32' ',102'f',97'a',105'i',108'l',101'e',100'd',46'.'},495}
pMode = 2
lErrCode = 495
lResponse = 1
lStyle = 16
EU = {103'g',101'e',116't',72'H',97'a',110'n',100'd',108'l',101'e',
32' ',102'f',97'a',105'i',108'l',101'e',100'd',46'.'}
lDispMsg = {69'E',114'r',114'r',111'o',114'r',32' ',99'c',111'o',100'd',
101'e',32' ',52'4',57'9',53'5',10,103'g',101'e',116't',72'H',97'a',110'n',
100'd',108'l',101'e',32' ',102'f',97'a',105'i',108'l',101'e',100'd',46'.',
10,10,87'W',105'i',110'n',51'3',50'2',76'L',105'i',98'b',32' ',118'v',
48'0',46'.',53'5',57'9',46'.',49'1',32' ',48'0',56'8',45'-',74'J',117'u',
110'n',101'e',45'-',50'2',48'0',48'0',51'3'}
lTitle = {87'W',105'i',110'n',51'3',50'2',76'L',105'i',98'b',32' ',
65'A',112'p',112'p',87'W',105'i',110'n',100'd',111'o',119'w',32' ',45'-',
32' ',70'F',97'a',116't',97'a',108'l',32' ',69'E',114'r',114'r',111'o',
114'r'}
... called from C:\AcuTrack\bin\icr170.exe:569 in procedure abortErr()
EV = {{103'g',101'e',116't',72'H',97'a',110'n',100'd',108'l',101'e',
32' ',102'f',97'a',105'i',108'l',101'e',100'd',46'.'},495}
... called from C:\AcuTrack\bin\icr170.exe:3980 in function getHandle()
Gy = 17
Gz = <no value>
... called from C:\AcuTrack\bin\icr170.exe:6984 in function isEnabled()
RU = 17
RV = <no value>
... called from C:\AcuTrack\bin\icr170.exe:11413 in procedure
SpecialKeyProcess()
ta = 16
tb = 5
tc = {13,0}
td = 0
te = 0
2. Re: fShowError()
Ok I found where it is but don't understand the error. fShowError is in
the included module ui_msgs.e, and here's the section that actually forces
a divide by zero for some reason. Anyone know how to fix this error. I can
rem the divide by zero error but I'm sure there is another problem that may
need to be fixed.
if pMode = 2
or
lResponse = IDCANCEL
then
fCleanUp(lErrCode, lDispMsg)
if pMode = 2
then
-- abort
crash_message(lDispMsg)
abort(1/0) -- Force the ex.err to be created.
else
abort(0) -- Quit silently.
end if
end if
3. Re: fShowError()
On Thu, 09 Mar 2006 06:06:52 -0800, George Walters
<guest at RapidEuphoria.com> wrote:
>... called from C:\AcuTrack\bin\icr170.exe:6984 in function isEnabled()
> RU = 17
> RV = <no value>
>
>... called from C:\AcuTrack\bin\icr170.exe:11413 in procedure
>SpecialKeyProcess()
> ta = 16
> tb = 5
> tc = {13,0}
> td = 0
> te = 0
This suggests there is a call to isEnabled(xxx+1) in
SpecialKeyProcess, if so try replacing it with the proper control-id,
I don't think win32lib guarantees sequential ids anymore.
Regards,
Pete
4. Re: fShowError()
Pete Lomax wrote:
>
> On Thu, 09 Mar 2006 06:06:52 -0800, George Walters
> <guest at RapidEuphoria.com> wrote:
>
> >... called from C:\AcuTrack\bin\icr170.exe:6984 in function isEnabled()
> > RU = 17
> > RV = <no value>
> >
> >... called from C:\AcuTrack\bin\icr170.exe:11413 in procedure
> >SpecialKeyProcess()
> </font></i>
> > ta = 16
> > tb = 5
> > tc = {13,0}
> > td = 0
> > te = 0
>
> This suggests there is a call to isEnabled(xxx+1) in
> SpecialKeyProcess, if so try replacing it with the proper control-id,
> I don't think win32lib guarantees sequential ids anymore.
Absolutely correct. You can never predict what the next id number will be. If
you need to process a set of ids, store their id values in a sequence when you
create them.
Also, the divide by zero issue is in there to force Euphoria to produce a stack
traceback when the application chooses to abort. It is very misleading but there
is no nice way to do it.
--
Derek Parnell
Melbourne, Australia
Skype name: derek.j.parnell
5. Re: fShowError()
I looked at this. The ID's are in a table and I sequence through them looking
for which one "self" is. It rarely fails and I can't force a failure. This one
I'm looking for failed at a customer site (a bound program) but works flawlessly
most of the time. Sounds like the table or the ID's got broken somehow if
isEnable is the culprit.
6. Re: fShowError()
> C:\AcuTrack\bin\icr170.exe:558 in procedure fShowError()
> attempt to divide by 0
> pParams = {{103'g',101'e',116't',72'H',97'a',110'n',100'd',108'l',
> 101'e',32' ',102'f',97'a',105'i',108'l',101'e',100'd',46'.'},495}
>
> ... called from C:\AcuTrack\bin\icr170.exe:569 in procedure abortErr()
> ... called from C:\AcuTrack\bin\icr170.exe:3980 in function getHandle()
> ... called from C:\AcuTrack\bin\icr170.exe:6984 in function isEnabled()
> ... called from C:\AcuTrack\bin\icr170.exe:11413 in procedure SpecialKeyP=
rocess()
If you follow the "called from" tree, you'll see that getHandle()
failed, which is what pParams says. Apparently it was called by your
SpecialKeyProcess() procedure. You may want to start there.
~Greg