|
Arde Enchanter
Joined: 09 Sep 2007 Posts: 605
|
Posted: Thu Jul 30, 2009 6:47 pm
[Fixed?][3.10a] AV for duplicated mapper window after conversion from 3.08 |
Code: |
date/time : 2009-07-30, 22:36:35, 921ms
operating system : Windows XP Service Pack 2 build 2600
system up time : 1 hour 12 minutes
program up time : 18 seconds
processors : 2x Intel(R) Pentium(R) D CPU 3.40GHz
physical memory : 867/2046 MB (free/total)
free disk space : (D:) 44,33 GB
display mode : 1680x1050, 32 bit
process id : $678
allocated memory : 41,87 MB
executable : cMUD.exe
exec. date/time : 2009-07-29 02:46
version : 3.10.0.1
compiled with : BCB 2006/07
madExcept version : 3.0h
callstack crc : $c3450884, $5d8ab076, $5d8ab076
count : 3
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 00CF1AED in module 'cMUD.exe'. Read of address 00000194.
Main ($e94):
00cf1aed +035 cMUD.exe MapNew3 3020 +2 TNewMapF.ActionKeyboardUpdate
0047b75b +00f cMUD.exe Classes TBasicAction.Update
004cbd0d +031 cMUD.exe ActnList TContainedAction.Update
0047b651 +005 cMUD.exe Classes TBasicActionLink.Update
00692473 +027 cMUD.exe dxBar 21996 +1 TdxBarItemLink.InitiateAction
006937f3 +01f cMUD.exe dxBar 22659 +1 TdxBarItemLinks.InitiateActions
0069d060 +04c cMUD.exe dxBar 28108 +7 TCustomdxBarControl.DoSetIsActive
006a81d1 +005 cMUD.exe dxBar 33847 +1 TdxBarSubMenuControl.DoSetIsActive
0069ade8 +040 cMUD.exe dxBar 26948 +3 TCustomdxBarControl.SetIsActive
006a757c +02c cMUD.exe dxBar 33482 +6 TdxBarSubMenuControl.CreateWnd
004c1502 +0ce cMUD.exe Controls TWinControl.SetBounds
004be18a +016 cMUD.exe Controls TWinControl.CreateHandle
004c1b30 +01c cMUD.exe Controls TWinControl.HandleNeeded
004c1b3d +005 cMUD.exe Controls TWinControl.GetHandle
006a9900 +060 cMUD.exe dxBar 34569 +11 TdxBarSubMenuControl.DoShow
006aa071 +0ed cMUD.exe dxBar 34776 +22 TdxBarSubMenuControl.Show
006b7dd2 +0b6 cMUD.exe dxBar 42686 +14 TdxBarSubItemControl.ShowSubMenuControl
006b7b43 +03b cMUD.exe dxBar 42615 +5 TdxBarSubItemControl.DoDropDown
006b517c +0a0 cMUD.exe dxBar 41178 +18 TdxBarButtonLikeControl.ControlActivate
006b7960 +018 cMUD.exe dxBar 42557 +14 TdxBarSubItemControl.ControlActivate
0069e3da +14e cMUD.exe dxBar 28841 +19 TCustomdxBarControl.SetMouseSelectedItem
0069cdec +0d0 cMUD.exe dxBar 28014 +27 TCustomdxBarControl.DoBarMouseMove
006a26bd +2c1 cMUD.exe dxBar 31020 +69 TdxBarControl.DoBarMouseMove
0069b9ba +0b2 cMUD.exe dxBar 27376 +9 TCustomdxBarControl.MouseMove
004bb8be +06e cMUD.exe Controls TControl.WMMouseMove
0069b392 +026 cMUD.exe dxBar 27187 +3 TCustomdxBarControl.WMMouseMove
004bb023 +2bb cMUD.exe Controls TControl.WndProc
004bf027 +4fb cMUD.exe Controls TWinControl.WndProc
0069be8c +25c cMUD.exe dxBar 27508 +52 TCustomdxBarControl.WndProc
006a2c7f +147 cMUD.exe dxBar 31225 +52 TdxBarControl.WndProc
004be750 +02c cMUD.exe Controls TWinControl.MainWndProc
0047c400 +014 cMUD.exe Classes StdWndProc
77d3bcc7 +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
00e0015c +088 cMUD.exe CMUD 352 +20 initialization
7c91312f +069 ntdll.dll RtlUnicodeStringToAnsiString
|
INTRODUCTION.
I have a session, once it was my primary session, but now it is frozen and I do not write scripts for it. But I do load it offline within each new beta version to see how CMUD works with moderate-size package and test new features.
WHAT I HAD BEFORE THIS RUN OF CMUD 3.10a?
A session, lastly opened in 3.08: the main session window, 2 groups of additional tabbed windows docked to the main, status window docked to the main, mapper window docked to the main.
WHAT HAPPENED?
Upon start of CMUD 3.10a, it did all the conversion normally. Then it draws all windows as they were in 3.08 except the mapper window - it was blank (no map was loaded, 3.08 had "Load map on startup" option checked). Investigating the "Window" menu from the CMUD main menu I've noticed that I have 2 mapper windows in this session. I had only 1 mapper window in 3.08.
Now, let's say my session is named "MySession". In 3.08 the caption of the mapper window was "Map for MySession". In 3.10a that docked window is empty. My map file is named "MySessionMap.mdb(dbm)". In 3.10a I have mapper window with caption "MySessionMap Map" hidden with my map loaded. So in 3.10a I have 2 mapper windows - old empty "Map for MySession" window and hidden "MySessionMap Map" window with loaded map.
Additionally, 3,10a automatically creates Room properties window for the "MySessionMap Map" mapper window (I can see it in the "Window" menu too). If I manually load my map to my original mapper window, then I'll be able to open another Room properties window from it - there will be 2 Room properties windows in the "Window" menu.
HOW I GOT THIS AV ERROR?
Just loaded my session offline, from the "Window" menu I chose "MySessionMap Map" to bring up hidden mapper window with my map loaded. Then I clicked on the menu in my original docked mapper window "Map for MySession" and just hover mouse pointer above top-level menu items. After 2 seconds I've got this error popped up.
Maybe CMUD should try to remove old mapper window if it want to open another window? |
|
_________________ My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads
Last edited by Arde on Mon Aug 10, 2009 7:16 pm; edited 1 time in total |
|
|
|
Doxedon Novice
Joined: 01 Dec 2007 Posts: 49
|
Posted: Fri Jul 31, 2009 11:42 am |
I think the bug I posted as a Search bug is actually this, and search is playing havoc with focusing the window/mapper?
Here's a pic of the "maps" i'm using.. Note: I'm not utilising the the mapper at all at this point. Don't have a map object in my setting either. Nor do I open the Mapper window in play.
Hope it helps..
Related thread: http://forums.zuggsoft.com/forums/viewtopic.php?t=33795
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Jul 31, 2009 4:21 pm |
First, go into the Settings Editor and delete any extra Map objects. Now exit CMUD and restart CMUD and then hold down the SHIFT Key when clicking the Open Offline option. This will recreate your layout file and will get rid of all of the hidden docked mapper windows that you showed in your screenshot above.
Now keep an eye on your Settings Editor and if you find a procedure for creating a duplicate map object, or if you find a procedure to create a duplicate map window in the Window menu, then post the procedure.
But once you get lots of windows like that, CMUD is going to save them in your layout. Your Window menu screenshot is showing that you have lots of hidden mapper windows within your layout, and those won't go away until you reset the layout as I described. Then we can focus on how to reproduce the problem that led to this condition. |
|
|
|
Arde Enchanter
Joined: 09 Sep 2007 Posts: 605
|
Posted: Fri Jul 31, 2009 6:42 pm |
I know about magical SHIFT key, but thought using it instead of bug reporting will be not fair for those who will upgrade theirs 2.XX sessions to 3.XX.
Ok, holding Shift key made things worse. Now I have 2 hidden "MySession Map" windows (each has the same map loaded) and visible mapper window with "Mapper" caption. Not "Automapper", but "Mapper". Same thing in the Window menu - "Mapper" If I bring up these 2 hidden mapper windows, they works normally, although I did not create them. And the empty "Mapper" window is the thing that makes AV errors, exactly the same I post in the beginning of this topic.
N.B. I have only 1 Map object. |
|
_________________ My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads |
|
|
|
Arde Enchanter
Joined: 09 Sep 2007 Posts: 605
|
Posted: Fri Jul 31, 2009 7:24 pm |
Additionally, I've deleted layout file and ran CMUD. Now, there was only 1 hidden mapper window "Mapper". I selected it from the Window menu and load my map through the "File\Open..." menu. My map has been loaded normally. Then, I've saved my layout and restarted CMUD. On session startup I saw "Loading map" (or whatever) progress bar, but after session has been loaded I see empty "Mapper" window again. My map was loaded to another mapper window (hidden). And visible empty "Mapper" window produces the same AVs again.
Summarizing on that, CMUD sees that it must load a map on startup, but it fails to see existing mapper window. This results in creation of a hidden mapper window. |
|
_________________ My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads |
|
|
|
Arde Enchanter
Joined: 09 Sep 2007 Posts: 605
|
Posted: Fri Jul 31, 2009 7:41 pm |
Hmm, this simple procedure reproduces the problem for me:
1) Run CMUD, create a new session, save it, open offline
2) From the "Window" menu select "Mapper"
3) From the Mapper menu select "File\Open..." and open any map file you have
4) Save layout
5) Restart CMUD, open your test session offline
You Mapper window will be visible, but empty. Click on its menu to get the "Access violation at address 00CF1AED in module 'cMUD.exe'. Read of address 00000194." error. There is hidden mapper window with loaded map as well, which is works normally. |
|
_________________ My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads |
|
|
|
Doxedon Novice
Joined: 01 Dec 2007 Posts: 49
|
Posted: Sat Aug 01, 2009 1:32 am |
Following your steps Zugg (delete and reset layout) and the multiple mapper options are gone from the menu.
I'm not sure if it's meant to be a sideeffect or not, but there is no longer any option at all relating to MAPs in the Window menu. |
|
|
|
Tech GURU
Joined: 18 Oct 2000 Posts: 2733 Location: Atlanta, USA
|
Posted: Mon Aug 03, 2009 7:12 pm |
I tried this with one of my old maps and it worked just fine.
|
|
_________________ Asati di tempari! |
|
|
|
Arde Enchanter
Joined: 09 Sep 2007 Posts: 605
|
Posted: Tue Aug 04, 2009 6:04 am |
After additional tests I can say that there is a difference between a mapper called by "Window\Mapper" menu and a mapper called by "Map" button from the main CMUD toolbar. Or, which is more probable, calling mapper from the menu does not init all variables required which results later in various AVs; mapper called by "Window\Mapper" menu can't draw\save\load maps, it only can draw mapper window itself.
Compare results from these 2 procedures
1a) Run CMUD, create a new session, save it, open offline.
2a) Click on the "Map" button from the main CMUD toolbar.
Mapper correctly creates default map for current session.
3a) From the mapper menu select "File->Save As" and save the map under different name
Mapper successfully saves the map.
4a) Exit CMUD.
1b) Run CMUD, create a new session, save it, open offline.
2b) From the CMUD main menu select "Window->Mapper".
Mapper doesn't create default map for current session.
3b) From the mapper menu select "File->Save As" and save the map under different name
Mapper crashes.
As I understand, "Window->Mapper" menu was designed for letting people open additional mapper windows. The problem for me is that by default, when CMUD loads a real session, it opens a mapper with the latter procedure, leaving me with no opened map and with ready-to-crash mapper window.
=================================================
Crash report after step 3b (I've sent it but forgot to specify my nickname again, sorry):
Code: |
date/time : 2009-08-04, 09:50:20, 609ms
operating system : Windows XP Service Pack 2 build 2600
system up time : 57 minutes 32 seconds
program up time : 41 seconds
processors : 2x Intel(R) Pentium(R) D CPU 3.40GHz
physical memory : 1069/2046 MB (free/total)
free disk space : (D:) 44,39 GB
display mode : 1680x1050, 32 bit
process id : $654
allocated memory : 34,28 MB
executable : cMUD.exe
exec. date/time : 2009-07-29 02:46
version : 3.10.0.1
compiled with : BCB 2006/07
madExcept version : 3.0h
callstack crc : $5acf67b0, $85a6fdfb, $85a6fdfb
count : 2
exception number : 1
exception class : EAccessViolation
exception message : Access violation at address 00D4E55C in module 'cMUD.exe'. Read of address 00000020.
Main ($ca0):
00d4e55c +000 cMUD.exe RoomRec3 1099 +0 TRoomRec.GetID
00a556ac +010 cMUD.exe MapFrame3 448 +0 TMapFr.GetCurRoom
00cef66b +057 cMUD.exe MapNew3 2307 +3 TNewMapF.ActionSaveAsExecute
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
006ae4ae +052 cMUD.exe dxBar 37238 +5 TdxBarItem.DoClick
006ae42b +03b cMUD.exe dxBar 37226 +4 TdxBarItem.DirectClick
006b26bc +154 cMUD.exe dxBar 39493 +32 TdxBarItemControl.ControlUnclick
006b579a +056 cMUD.exe dxBar 41411 +6 TdxBarButtonControl.ControlUnclick
0069b2de +0fe cMUD.exe dxBar 27162 +24 TCustomdxBarControl.WMLButtonUp
004bb023 +2bb cMUD.exe Controls TControl.WndProc
004bf027 +4fb cMUD.exe Controls TWinControl.WndProc
006a46ca +002 cMUD.exe dxBar 32031 +0 TdxBarControl.IsInternal
006a86d6 +012 cMUD.exe dxBar 34037 +1 TdxBarSubMenuControl.IsInternal
0069d6df +007 cMUD.exe dxBar 28313 +1 TCustomdxBarControl.GetEquivalentParentBar
0069c942 +01a cMUD.exe dxBar 27853 +6 TCustomdxBarControl.CanProcessMouseMessage
004be750 +02c cMUD.exe Controls TWinControl.MainWndProc
0047c400 +014 cMUD.exe Classes StdWndProc
77d3bcc7 +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
00e0015c +088 cMUD.exe CMUD 352 +20 initialization
7c91312f +069 ntdll.dll RtlUnicodeStringToAnsiString
|
|
|
_________________ My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads |
|
|
|
Tech GURU
Joined: 18 Oct 2000 Posts: 2733 Location: Atlanta, USA
|
Posted: Tue Aug 04, 2009 5:53 pm |
I think I see why I couldn't re-create this problem. One of us must have a messed up installation.
Using the procedure you described in the second step, I don't have a 'Mapper' under 'Window' when I first open my new session offline. As a result I don't get the subsequent errors that occur.
When Zugg finishes his birthday celebrations, he can weigh and say which is correct. I'll try a new install on my home machine this evening to see what happens. |
|
_________________ Asati di tempari! |
|
|
|
Rahab Wizard
Joined: 22 Mar 2007 Posts: 2320
|
Posted: Tue Aug 04, 2009 8:03 pm |
From what Zugg said last week, I think that the Mapper is only supposed to appear under Window when you already have a mapper window associated with the session.
|
|
|
|
Arde Enchanter
Joined: 09 Sep 2007 Posts: 605
|
Posted: Mon Aug 10, 2009 7:13 pm |
A small update on this thread.
Tech was right: it was not a clean install. I just uninstalled 3.08 and then ran setup for 3.10a.
The cause of the problem was my old default.xly, which had a reference to a Mapper window. This mapper plus a mapper from the session layout file gave 2 mapper windows and that was the first symptom I saw after 3.10a installation. I do not know why default mapper stays active after I have a session loaded...
I renamed existing default.xly and let CMUD recreate it - now there is only 1 Mapper window and everything works fine. (Note that running CMUD without default.xly file results in opening simultaneously of the "Sessions" window along with untitled session with status window. That untitled session has 2 untitled packages in it. Dunno is it a bug or no. I closed that untitled session and saved new default layout).
The question is, how can I reset default layout, not the session layout without need to delete a file? Can CMUD overwrite existing default.xly file on install? I think there is no need to keep it.
Here is a part of my old default.xly file (was created in April)
Code: |
<Control TypeId="0" Key="{A764C731-2422-415C-A18E-C9815744E68C}" ScreenRect="937;331;1287;754" NormalSize="0;0" PanelState="0" Caption="Mapper" Alignment="3" ShowCaption="0" AHOrientation="4" AHSite="{00000000-0000-0000-0000-000000000000}" AHContainer="{00000000-0000-0000-0000-000000000000}" PlacementInfo.Position="937;331" PlacementInfo.Size="350;423" PlacementInfo.FloatPosition="-1;-1" PlacementInfo.FloatSize="450;200" SPlacementInfoFloatState="0" PlacementInfo.State="0" PlacementInfo.ContainerId="2" PlacementInfo.Order="1" PlacementInfo.ParentKey="{79E52D8A-2DF8-4585-B88B-1208089DF234}" PlacementInfo.TabOrientation="0" PlacementInfo.Alignment="3" PlacementInfo.HideSize="0" ChildrenCount="0"/>
|
Note the PlacementInfo.Position="937;331" part - it is exactly the same position my mapper had within my session. But why it saved this info in the default layout file as well? With this old default layout file I had that bugged empty "Mapper" window with the specified coordinates, while my actual session map window was hidden. Compare with a part of my old session layout file:
Code: |
<Control TypeId="0" Key="{A764C731-2422-415C-A18E-C9815744E68C}" ScreenRect="1273;89;1680;478" NormalSize="0;0" PanelState="0" Caption="Map for *****" Alignment="0" ShowCaption="0" AHOrientation="4" AHSite="{00000000-0000-0000-0000-000000000000}" AHContainer="{00000000-0000-0000-0000-000000000000}" PlacementInfo.Position="937;331" PlacementInfo.Size="350;423" PlacementInfo.FloatPosition="-1;-1" PlacementInfo.FloatSize="450;200" SPlacementInfoFloatState="0" PlacementInfo.State="0" PlacementInfo.ContainerId="2" PlacementInfo.Order="0" PlacementInfo.ParentKey="{79E52D8A-2DF8-4585-B88B-1208089DF234}" PlacementInfo.TabOrientation="0" PlacementInfo.Alignment="1" PlacementInfo.HideSize="0" ChildrenCount="0"/> |
|
|
_________________ My personal bug|wish list:
-Wrong Priority when copy-paste setting
-1 prompt trigger for Mapper, Session and General Options, not 3 different!
-#SECTION can terminate threads
-Buttons can't start threads |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Aug 12, 2009 4:49 pm |
Just delete the old default.xly file to restore the default layout.
|
|
|
|
|
|