I had a problem with a program that has been widely tested, but recently, in two computers I started getting the Integer Overflow exception at random times (I can't get a pattern) when i try to access some date routines like formatdatetime or now. Madexcept has traced the problem back to the DateTimeToTimeStamp function in SysUtils, but it´s in assembler and I don't really remember much from my asm classes to know whats happening. I've searched all over the internet for a solution or someone with a similar problem but i haven't found anything. I suspect it may be relaed to the regional settings or something like that.
Does any one have a clue about what's happening here?
This is an excerpt from the related madexcept log.
operating system : Windows XP Service Pack 2 build 2600
processors : 2x Intel(R) Pentium(R) 4 CPU 3.20GHz
physical memory : 212/447 MB (free/total)
free disk space : (C:) 35.03 GB
exception class : EIntOverflow
exception message : Integer overflow.
Main ($980):
004574e5 +025 Station.exe SysUtils DateTimeToTimeStamp
00457684 +01c Station.exe SysUtils DecodeTime
007810d1 +025 Station.exe JvClock TJvClock.GetTime
007822c7 +047 Station.exe JvClock TJvClock.PaintTimeStr
00781701 +0ed Station.exe JvClock TJvClock.TimerExpired
0077ff37 +01b Station.exe JvTimer TJvTimer.Timer
00476511 +0fd Station.exe Classes CheckSynchronize
004c9b6a +6b2 Station.exe Forms 7398 +153 TApplication.WndProc
00478360 +014 Station.exe Classes StdWndProc
77d196c2 +00a USER32.dll DispatchMessageA
004ca294 +0fc Station.exe Forms 7651 +23 TApplication.ProcessMessage
004ca2ce +00a Station.exe Forms 7670 +1 TApplication.HandleMessage
004ca4ee +096 Station.exe Forms 7754 +16 TApplication.Run
Thank You
The date time is obviously getting messed up, so couple of questions.
- Are you handling the OnGetTime event, and is it possible that the date / time value is getting messed up there?
- Have you tried placing a try / except handler in the TJvClock.GetTime method to allow you to log the value that is causing the exception?
The actual cause of the exception is this:
@@1: DIV IMSecsPerDay
And is caused by too large a number being passed in as a date time value. Also, any place where you are enabling / disabling the clock within an event handler that might call GetTime?
Regards,
Russell