|
JQuilici Adept
Joined: 21 Sep 2005 Posts: 250 Location: Austin, TX
|
Posted: Mon Mar 17, 2008 6:12 pm
[2.20] Crash crossing zone boundary (corrected w/ INI file change) |
EDIT: This problem can be corrected by using the JETCOMP utility from Microsoft. See below.
There is another thread in the main cMUD board regarding this bug, but I'm posting here now that I've confirmed it in 2.20. And because I don't own the top post in the original thread, so I can't update the title.
I have pared this down as far as I can without rebuilding my map.
Procedure
- Start cMud 2.20
- Create a new session. Doesn't matter what - we're not connecting to anything
- Load the new session offline.
- Click the mapper button to load the map window
- Choose File->Open from the mapper menubar, and load my map file (available here, approx 10.5 MB now that I've compressed it)
- Type .sws5e at the command-line, to walk out of the initial zone
Crash occurs immediately upon exiting the zone. Note that I am not connected, have not loaded my map config, and have not loaded any packages other than the default. The crash also occurs if you single-step all the directions in step 6 - the crash occurs on the final 'e' command.
FWIW, this is an exact copy of my map file from ZMUD 7.21, where it works fine.
Automatic sending of the crash fails for this bug, so here is the dump:
Code: |
date/time : 2008-03-17, 12:45:31, 248ms
computer name : QTOP
operating system : Windows XP Service Pack 2 build 2600
system language : English
system up time : 3 days 16 hours
program up time : 2 minutes 18 seconds
processor : Intel(R) Pentium(R) M processor 1.80GHz
physical memory : 1231/2047 MB (free/total)
free disk space : (C:) 12.61 GB
display mode : 1400x1050, 32 bit
process id : $1e20
allocated memory : 55.72 MB
executable : cMUD.exe
exec. date/time : 2008-03-14 21:43
version : 2.20.0.0
compiled with : BCB 2006
madExcept version : 3.0e
callstack crc : $8e13e184, $b5092c03, $b5092c03
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 00DAC7EC in module 'cMUD.exe'. Read of address 687361BA.
Main ($1b2c):
00dac7ec +00b0 cMUD.exe PrefDat 10922 +10 TCacheNode.Execute
00da8c44 +0228 cMUD.exe PrefDat 9373 +40 PrefRec.InternalExecute
00da8e97 +001f cMUD.exe PrefDat 9429 +2 PrefRec.Execute
00d0998b +014f cMUD.exe MAIN 6183 +14 TMUDForm.ExecThread
00d10ae6 +04c2 cMUD.exe MAIN 8550 +94 TMUDForm.ExecTrig
00d0e695 +1149 cMUD.exe MAIN 7758 +326 TMUDForm.HandleTrigger
00d0d037 +000f cMUD.exe MAIN 7258 +1 TMUDForm.UserOutNewLine
00a5af59 +0039 cMUD.exe term 8875 +3 TTerm.DoTriggerLine
00a5995c +0218 cMUD.exe term 8445 +34 HandleNewLine
00a5a150 +06e4 cMUD.exe term 8569 +104 TTerm.PutText
00a5a70f +0053 cMUD.exe term 8675 +2 TTerm.Add
00cf8ba1 +00b1 cMUD.exe MAIN 1581 +8 TMUDForm.OutputStr
00cf8e96 +00f6 cMUD.exe MAIN 1659 +23 TMUDForm.NextMUDLine
00cf9305 +0019 cMUD.exe MAIN 1733 +4 TMUDForm.DoNextLine
004c01df +02bb cMUD.exe Controls TControl.WndProc
004c41e3 +04fb cMUD.exe Controls TWinControl.WndProc
004a677b +0553 cMUD.exe Forms TCustomForm.WndProc
004c390c +002c cMUD.exe Controls TWinControl.MainWndProc
00481620 +0014 cMUD.exe Classes StdWndProc
7e4196c2 +000a USER32.dll DispatchMessageA
004ae8f0 +00fc cMUD.exe Forms TApplication.ProcessMessage
004ae92a +000a cMUD.exe Forms TApplication.HandleMessage
004aec1f +00b3 cMUD.exe Forms TApplication.Run
00e3ba60 +0088 cMUD.exe CMUD 354 +20 initialization
7c91312f +0069 ntdll.dll RtlUnicodeStringToAnsiString
7c812b94 +00b6 kernel32.dll GetVersionExA
error details:
Crossing zone boundary in Automapper |
|
|
_________________ Come visit Mozart Mud...and tell an imm that Aerith sent you!
Last edited by JQuilici on Mon Mar 17, 2008 9:20 pm; edited 2 times in total |
|
|
|
JQuilici Adept
Joined: 21 Sep 2005 Posts: 250 Location: Austin, TX
|
|
_________________ Come visit Mozart Mud...and tell an imm that Aerith sent you! |
|
|
|
JQuilici Adept
Joined: 21 Sep 2005 Posts: 250 Location: Austin, TX
|
Posted: Mon Mar 17, 2008 7:02 pm |
Sure enough. Whatever the JETCOMP utility does to the DB, it fixes this issue.
Might want to fail more gracefully than a crash, but this discovery definitely ratchets down the importance of the problem. |
|
_________________ Come visit Mozart Mud...and tell an imm that Aerith sent you! |
|
|
|
JQuilici Adept
Joined: 21 Sep 2005 Posts: 250 Location: Austin, TX
|
Posted: Mon Mar 17, 2008 7:22 pm |
Apparently, the important thing that the JETCOMP utility did was....change the filename.
It now appears that the problem is related to the mapper .ini file. If I rename the .ini, and let it recreate one, I no longer crash crossing that zone boundary. |
|
_________________ Come visit Mozart Mud...and tell an imm that Aerith sent you! |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Mar 17, 2008 8:40 pm |
Can you compare the INI file that crashes with the one that doesn't and let me know what is different between them?
|
|
|
|
JQuilici Adept
Joined: 21 Sep 2005 Posts: 250 Location: Austin, TX
|
Posted: Mon Mar 17, 2008 9:07 pm |
Was doing that very thing. Here is the full output from 'diff'ing the two files (first file is the regenerated one that works, second one is my original that crashes):
Code: |
17c17
< PromptStepSafe=0
---
> PromptStepSafe=1
19c19
< BlankPrompt=1
---
> BlankPrompt=0
23c23
< WarnWalk=1
---
> WarnWalk=0
37c37
< FontName=Tahoma
---
> FontName=MS Sans Serif
40c40
< FontCol=-16777208
---
> FontCol=-2147483640
43c43
< ShowNearby2=0
---
> ShowNearby=0
45,46c45,47
< TabPage=0
< CurrentConfig=1
---
> TabPage=1
> CurrentConfig=2
> ShowNearby2=0
49,52c50,53
< StartRoom=0
< DoStart=0
< PrevRoom=1
< RecallRoom=0
---
> StartRoom=1
> DoStart=1
> PrevRoom=-1
> RecallRoom=1
63,64c64,65
< HighlightColor=-16777196
< DimColor=-16777200
---
> HighlightColor=-2147483628
> DimColor=-2147483632
68c69,70
< mozartmud.zfg=
---
> mozmap.zfg=
> mozartmapcfg.zfg= |
I have no idea how most of these differences occurred, honestly. I'm sure that I changed these in zMUD for some reason, but I haven't touched the map config in forever.
I believe that I can cause the crash to appear or disappear by toggling the PromptStepSafe setting in the ini file (I am in SAFE walk mode normally). It crashes with PromptStepSafe=1 and does not with PromptStepSafe=0. Similarly, switching to SLOW walk mode (even offline) will crash, since PromptStepSlow=1.
I have posted the regenerated ini file to go with my map file here. You'll have to '#tele 1' before walking around offline - the regenerated version seems to start in room 0 and I haven't reset it. The version posted should crash. If you edit the ini file to have PromptStepSafe=0, or just uncheck the box in the config dialog, then try again, it should work fine. |
|
_________________ Come visit Mozart Mud...and tell an imm that Aerith sent you! |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Mar 17, 2008 10:03 pm |
Can you try this somehow with a blank session file? In other words, start a new session, but then open the mapper and load your map file and set up the configuration the way it was and see if it crashes when crossing the zone boundary.
The crash dump that you originally gave shows the crash occurring while executing a trigger. Now, I don't know if it's one of the triggers being automatically generated by CMUD to handle the walking across the map, or if it's some other trigger in your settings. By testing this in a blank settings file, I can rule out any interaction with any of your other scripts. |
|
|
|
JQuilici Adept
Joined: 21 Sep 2005 Posts: 250 Location: Austin, TX
|
Posted: Tue Mar 18, 2008 12:45 am |
As I stated in the original post above, I am doing this in an otherwise completely blank session, created just for this test - the only packages loaded are the default packages (default settings, English dirs, English keypad, and the session package). I suppose I should have stated that I have not changed the list of default packages - it's just the ones that ship with CMUD - so none of my packages are loaded in the test session.
To be absolutely sure, I (just now) did a virgin install on another machine, no imports from anywhere.
- Downloaded my map DB and map .ini file from the links in this thread to a 'Mozart' folder in my CMUD 2.20 install dir.
- Created a blank session (called 'mapCrash') - no host or port, 'cuz I won't use them.
- Loaded the session offline
- Clicked the 'map' button to open the automapper
- Loaded my map DB (with the bad .ini file) using File->Open
- Walked out of the zone. Crashed.
- Quit, fired it up, and tried again. Crashed.
- Changed PromptStepSafe to 0 in the .ini file, then tried again. No crash.
I think that's the smoking gun.
(And yes, the stack traces all show TMUDForm.ExecTrig a few frames down, so it does look like some trigger is doing it. Not one of mine, though!) |
|
_________________ Come visit Mozart Mud...and tell an imm that Aerith sent you! |
|
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|