 |
Vijilante SubAdmin

Joined: 18 Nov 2001 Posts: 5187
|
Posted: Mon Jul 20, 2009 11:37 pm
[3.09] Closing packge with Map setting leaves window |
Even though it mostly works right, tt should be disallowed to close the package containg an active Map setting. There is a crash hiding just a little ways down.
| Code: |
date/time : 2009-07-20, 19:27:14, 189ms
operating system : Windows XP Service Pack 2 build 2600
system language : English
system up time : 23 days 22 hours
program up time : 1 minute 13 seconds
processor : AMD Athlon(tm) Processor
physical memory : 112/383 MB (free/total)
free disk space : (C:) 5.60 GB
display mode : 1024x768, 32 bit
process id : $2670
allocated memory : 34.30 MB
executable : cMUD.exe
exec. date/time : 2009-07-17 17:30
version : 3.9.0.0
compiled with : BCB 2006/07
madExcept version : 3.0h
callstack crc : $d10b349d, $c90dcac1, $c90dcac1
count : 2
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 007272F0 in module 'cMUD.exe'. Read of address 00000010.
Main ($26d8):
007272f0 +000 cMUD.exe Lister 526 +0 pList.Count
00db456a +006 cMUD.exe PkgDM 7999 +0 TPkg.GetPkgCount
00d6c923 +027 cMUD.exe PrefDat 11594 +2 ModuleRec.LoadPkgState
00db44d9 +041 cMUD.exe PkgDM 7959 +5 PackageRec.LoadPkgState
00db5596 +072 cMUD.exe PkgDM 8397 +7 TPkg.LoadPkgState
00c5e35f +603 cMUD.exe PARENT 2804 +335 TParentForm.NewWindow
00ddca44 +07c cMUD.exe WindowFrame 351 +6 TWindowF.wmUpdateVisible
004bb023 +2bb cMUD.exe Controls TControl.WndProc
004bf027 +4fb cMUD.exe Controls TWinControl.WndProc
004be750 +02c cMUD.exe Controls TWinControl.MainWndProc
0047c400 +014 cMUD.exe Classes StdWndProc
77d4bcc7 +00a USER32.dll DispatchMessageA
004a96fc +0fc cMUD.exe Forms TApplication.ProcessMessage
004a9736 +00a cMUD.exe Forms TApplication.HandleMessage
004a9a2b +0b3 cMUD.exe Forms TApplication.Run
00e00170 +088 cMUD.exe CMUD 352 +20 initialization
7c91312f +069 ntdll.dll RtlUnicodeStringToAnsiString |
Procedure
1. Launch CMud
2. Close Sessions Window (ESC)
3. Open Mapper (Ctrl-M)
4. Open Package Editor (CTRL-G)
5. Select File|New Package from the PE menu, name the new package "t1"
6. Drag Map setting from untitle package to t1 tab
7. Right-click t1 tab, select Delete Tab from context menu, and confirm
8. Select File|Open from PE menu, open t1
9. Click t1 module in tree view
10. Click Convert to Window
11. Click Window is visible
12. Click Save
The stack in the crash dump seems to have absolutely nothing to do with the mapper. Skipping those mapper steps and a few different orderings of the mapper interaction do not cause crashes.
I was aiming at just testing the concept regarding losing the Map setting. I was playing around with some more complex things and got this crash.
| Code: |
date/time : 2009-07-20, 19:21:49, 502ms
operating system : Windows XP Service Pack 2 build 2600
system language : English
system up time : 23 days 22 hours
program up time : 18 minutes 35 seconds
processor : AMD Athlon(tm) Processor
physical memory : 115/383 MB (free/total)
free disk space : (C:) 5.60 GB
display mode : 1024x768, 32 bit
process id : $2288
allocated memory : 35.21 MB
executable : cMUD.exe
exec. date/time : 2009-07-17 17:30
version : 3.9.0.0
compiled with : BCB 2006/07
madExcept version : 3.0h
callstack crc : $df54df0e, $8aed9edb, $8aed9edb
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 00DB2F29 in module 'cMUD.exe'. Read of address 0000005C.
Main ($16f0):
00db2f29 +04d cMUD.exe PkgDM 7392 +3 TPkg.GetDBStr
00d6bad2 +016 cMUD.exe PrefDat 11410 +1 ModuleRec.GetUniqueID
00d7383a +036 cMUD.exe PrefDat 13292 +5 LocationRec.SetMapDB
00d304c5 +095 cMUD.exe MapLoc3 653 +13 TMapLoc.SetMapDB
00d2fc18 +240 cMUD.exe MapLoc3 332 +67 TMapLoc.Create
00ce9d91 +235 cMUD.exe MAIN 23384 +25 TMUDForm.InitMapLoc
00c6df8b +173 cMUD.exe PARENT 9701 +24 TParentForm.InitMapPanel
00c6e146 +12a cMUD.exe PARENT 9740 +20 TParentForm.ShowMap
00c7236f +013 cMUD.exe PARENT 11352 +1 TParentForm.SetMapOn
00c6b2cb +037 cMUD.exe PARENT 8544 +6 TParentForm.AutoMapper1Click
0047b73f +00f cMUD.exe Classes TBasicAction.Execute
004cbcb5 +031 cMUD.exe ActnList TContainedAction.Execute
004cc97c +050 cMUD.exe ActnList TCustomAction.Execute
0047b60b +013 cMUD.exe Classes TBasicActionLink.Execute
006ae52e +052 cMUD.exe dxBar 37239 +5 TdxBarItem.DoClick
006ae4ab +03b cMUD.exe dxBar 37227 +4 TdxBarItem.DirectClick
006ae468 +018 cMUD.exe dxBar 37219 +1 TdxBarItem.Click
006af19e +02a cMUD.exe dxBar 37676 +3 TdxBarButton.Click
006adc32 +036 cMUD.exe dxBar 36901 +7 TdxBarItem.IsShortCut
006938c0 +040 cMUD.exe dxBar 22672 +6 TdxBarItemLinks.IsShortCut
006adc53 +057 cMUD.exe dxBar 36904 +10 TdxBarItem.IsShortCut
006938c0 +040 cMUD.exe dxBar 22672 +6 TdxBarItemLinks.IsShortCut
0068f9d6 +006 cMUD.exe dxBar 20516 +0 TdxBar.IsShortCut
00688949 +025 cMUD.exe dxBar 16933 +1 IsBarManagerShortCut
00688a86 +062 cMUD.exe dxBar 16967 +9 TdxBarManager.HandleShortCut
00681760 +020 cMUD.exe dxBar 12829 +1 HandleKey
00681c22 +182 cMUD.exe dxBar 12967 +34 MenuActivateIfNeeded
00681f53 +083 cMUD.exe dxBar 13076 +16 dxBarKeyboardHook
7c90eae0 +010 ntdll.dll KiUserCallbackDispatcher
7c91312f +069 ntdll.dll RtlUnicodeStringToAnsiString |
It would take me a few hours to figure out how to replicate the second crash. I had set up the second package with a window and had the map tracking the default location of that window.
I was about to post that it is just a bad idea to let the map hang around, then I got the second of those crash dumps. Trying to find how to do it got the first one. It will probably be easier to put in a 'You may not do that.' popup then it will be to track down and fix all the points that could crash from this. |
|
_________________ The only good questions are the ones we have never answered before.
Search the Forums |
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Jul 21, 2009 4:42 pm |
Actually, I think if you close the package that contains the Map Object of a visible map window, then CMUD should probably also close the associated map window (and room properties window too if needed). That would be the same as closing a "Tells" window when you remove the package that contains the window object.
But thanks for the procedure. I'll play with it and try to track down the bug. But I think it's just leaving a pointer to a non-existent map object that is then causing lots of crashes from that point on. |
|
|
|
 |
|
|
|
|
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
|
|