|
oldguy2 Wizard
Joined: 17 Jun 2006 Posts: 1201
|
Posted: Tue Sep 07, 2010 7:17 pm
[3.25-3.30] Integer Overflow |
I can't really report this as a bug although there is an issue somewhere. The reason is it locked up Cmud on me and I could not even save the bug report. The following is what happened.
I enabled Cmud to display the timestamps on screen. The format I used was hh:nn:ss:zzz. Then I got an Integer overflow error and Cmud crashed. I was able to look at the bug report before Cmud completely froze and the top four lines on the stack showed DateTimeStamp and concerned timestamp. I'm sorry I only got to see it for a second or so. When I went to save Cmud just locked up and I had to kill the process through task manager. Anyway, I just disabled displaying of timestamps and the error never happened again. However, I was able to have Cmud log timestamps without issue. Also I was connected at the time so I had lines being displayed and timestamps being displayed. I also had another person who was speaking with me disable the display of timestamps and Cmud crashed on them as soon as they changed the option.
Again I don't really know where the issue is and was unable to save the crash report. It would be nice if Cmud automatically saved the crash reports to a file. |
|
Last edited by oldguy2 on Thu Oct 14, 2010 2:21 am; edited 1 time in total |
|
|
|
MattLofton GURU
Joined: 23 Dec 2000 Posts: 4834 Location: USA
|
Posted: Tue Sep 07, 2010 11:36 pm |
It's kind of a bad idea to do things that change the width of the scrollback buffer in any way while connected. The error probably happened because you were in the middle of a resize event with a REALLY big buffer when the new lines came (which probably were stuck using the old width and thus triggering more resize stuff).
|
|
_________________ EDIT: I didn't like my old signature |
|
|
|
oldguy2 Wizard
Joined: 17 Jun 2006 Posts: 1201
|
Posted: Wed Sep 08, 2010 1:11 am |
True but that wasn't the case with me. I had set to show timestamps before I connected and wasn't do anything at all. The only thing I did was open a folder on my PC to look at something and Cmud popped up the Integer overflow error and crashed.
|
|
|
|
oldguy2 Wizard
Joined: 17 Jun 2006 Posts: 1201
|
Posted: Wed Sep 08, 2010 7:58 am |
Well I finally caught this after it crashed on me again.
Code: |
date/time : 2010-09-08, 02:52:18, 390ms
operating system : Windows XP Service Pack 3 build 2600
system language : English
system up time : 40 minutes 49 seconds
program up time : 34 minutes 26 seconds
processor : AMD Athlon(tm) 64 Processor 3800+
physical memory : 1354/2047 MB (free/total)
free disk space : (C:) 122.84 GB
display mode : 1440x900, 32 bit
process id : $7d4
allocated memory : 44.81 MB
executable : cMUD.exe
exec. date/time : 2010-09-01 17:17
version : 3.25.0.0
compiled with : BCB 2006/07
madExcept version : 3.0k
callstack crc : $4a74fbb2, $b5a47966, $b5a47966
exception number : 1
exception class : EIntOverflow
exception message : Integer overflow.
Main ($8c4):
00456745 +025 cMUD.exe SysUtils DateTimeToTimeStamp
004568e4 +01c cMUD.exe SysUtils DecodeTime
00456ea5 +031 cMUD.exe SysUtils GetTime
00457471 +329 cMUD.exe SysUtils AppendFormat
00457926 +026 cMUD.exe SysUtils DateTimeToString
00cec4d3 +62b cMUD.exe MAIN 11684 +104 TMUDForm.ConnectTimerTimer
00c9a8b8 +06c cMUD.exe PARENT 6754 +9 TParentForm.SystemTimerTimer
00497aaf +00f cMUD.exe ExtCtrls TTimer.Timer
00497993 +02b cMUD.exe ExtCtrls TTimer.WndProc
0047d4ac +014 cMUD.exe Classes StdWndProc
7e4196c2 +00a USER32.dll DispatchMessageA
004aa7f4 +0fc cMUD.exe Forms TApplication.ProcessMessage
004aa82e +00a cMUD.exe Forms TApplication.HandleMessage
004aab23 +0b3 cMUD.exe Forms TApplication.Run
00e4ba8c +088 cMUD.exe CMUD 372 +20 initialization
7c912c21 +069 ntdll.dll RtlUnicodeStringToAnsiString |
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Sep 08, 2010 4:22 pm |
I wasn't able to get it to crash here. Can you give more of a step-by-step procedure for how you got it to crash again?
The crash is happening pretty deep into the SysUtils unit, which is a Delphi unit that handles Windows-related stuff. Something I don't have source code control over. So I really have no idea how to make this happen.
I opened a blank session, then went into the Scrollback preferences and turned on the Timestamps, then entered hh:nn:ss:zzz for the format. So tell me what you did differently from that. |
|
|
|
oldguy2 Wizard
Joined: 17 Jun 2006 Posts: 1201
|
Posted: Wed Sep 08, 2010 7:09 pm |
Well I wasn't do anything. That's what is odd. I've noticed it happens when I open a file or something on my PC though. Like this time I opened a text file (previous Cmud log) and was reviewing it and it crashed. Last time I opened folder or something and it crashed with the same error. Perhaps it is just coincidence but that's the only thing I can think of. Other than that I am simply connected and my character is just standing there. In fact prior to that I had got into some full blown combat and it did not crash. Also I did not have timestamps displayed this time when it crashed. However, they were being written to the log. Anyway, that is the same error I got last time and pretty much identical bug report. At least it looks identical.
Here is exactly what I did.
1. Opened My Documents.
2. Opened My Games
3. Opened my session folder.
4. Opened the prior log file.
5. Clicked on the log text file and was looking through it.
Then it popped up the Integer overflow error and crashed.
I guess you got my PC specs from the bug report already. |
|
|
|
oldguy2 Wizard
Joined: 17 Jun 2006 Posts: 1201
|
Posted: Wed Sep 08, 2010 7:30 pm |
What would cause "Integer overflow"? The exceptions aren't that descriptive and don't say what int or byte it was working on and so on. Oh yes one more thing that is probably important. When it happens I get the Greek Lunate Epsilon symbol shows up in the command line. Well actually it is either U+03F5 or the Cyrillic Ukrainian ye U+0404 or the "element of" U+2208. They all kind of look identical and all deal with mathematics? I am certain it is one of them. It showed it in the command line when it crashed both times. Maybe it's closer to U2208.
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Sep 08, 2010 8:52 pm |
Hmm, I looked at the line of the crash in MAIN.PAS where it calls the FormatDateTime Delphi routine. It actually doesn't have anything to do with the Timestamp display. It is the display of the Connection Time where the crash is happening. CMUD calls this:
Code: |
S := FormatDateTime( 'h:nn:ss', ConnTotal); |
Where ConnTotal is the total time connected to the session.
Now, in your instructions shown above, it doesn't look like you ever actually connected to the session yet. I wonder if this error occurs if ConnTotal is negative or something odd like that. This routine is called within the ConnectTimerTimer event handler, which runs when the 1 second timer in CMUD goes off. So maybe the timer was going off before your session was properly initialized or something?
In any case, I will play with this section of code and see what I can do. |
|
|
|
oldguy2 Wizard
Joined: 17 Jun 2006 Posts: 1201
|
Posted: Thu Oct 14, 2010 2:23 am |
This continues to plague me.
Code: |
date/time : 2010-10-13, 21:15:28, 640ms
operating system : Windows XP Service Pack 3 build 2600
system language : English
system up time : 22 hours 35 minutes
program up time : 5 minutes 10 seconds
processor : AMD Athlon(tm) 64 Processor 3800+
physical memory : 1379/2047 MB (free/total)
free disk space : (C:) 124.22 GB
display mode : 1440x900, 32 bit
process id : $9a4
allocated memory : 51.42 MB
executable : cMUD.exe
exec. date/time : 2010-10-01 16:35
version : 3.30.0.0
compiled with : BCB 2006/07
madExcept version : 3.0k
callstack crc : $4a74fbb2, $f860968e, $f860968e
exception number : 1
exception class : EIntOverflow
exception message : Integer overflow.
Main ($934):
00456775 +025 cMUD.exe SysUtils DateTimeToTimeStamp
00456914 +01c cMUD.exe SysUtils DecodeTime
00456ed5 +031 cMUD.exe SysUtils GetTime
004574a1 +329 cMUD.exe SysUtils AppendFormat
00457956 +026 cMUD.exe SysUtils DateTimeToString
00d32643 +73b cMUD.exe MAIN 11840 +118 TMUDForm.ConnectTimerTimer
00ce002c +06c cMUD.exe PARENT 6768 +9 TParentForm.SystemTimerTimer
00497adf +00f cMUD.exe ExtCtrls TTimer.Timer
004979c3 +02b cMUD.exe ExtCtrls TTimer.WndProc
0047d4dc +014 cMUD.exe Classes StdWndProc
7e4196c2 +00a USER32.dll DispatchMessageA
004aa824 +0fc cMUD.exe Forms TApplication.ProcessMessage
004aa85e +00a cMUD.exe Forms TApplication.HandleMessage
004aab53 +0b3 cMUD.exe Forms TApplication.Run
00e93fb4 +088 cMUD.exe CMUD 372 +20 initialization
7c912c21 +069 ntdll.dll RtlUnicodeStringToAnsiString
error details:
Unknown. Nothing was happening at all. |
|
|
|
|
oldguy2 Wizard
Joined: 17 Jun 2006 Posts: 1201
|
Posted: Thu Oct 14, 2010 2:26 am |
Isn't the exec. date/time wrong?
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Thu Oct 14, 2010 6:47 pm |
Looks like I trapped the original error, but then the error happens again later down in that same routine. So I'll add another error trap there.
|
|
|
|
|
|