• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

[Crash] fatar error - pagefaults

Status
Not open for further replies.
Level 17
Joined
Aug 19, 2007
Messages
1,380
Hi all,

Recently I have more fatal errors with one of my custom maps on lan. I have checked Bribe's thread http://www.hiveworkshop.com/forums/world-editor-help-zone-98/list-warcraft-iii-crashes-194706/ to what could cause fatar errors. Only one option could it be from that list:

"3) Pagefaults caused by too many memory leaks crash the game."

Sometimes it happens when there are many players (7 or more). The map does not slow down and there is no lag too, just a fatar error than. Anyone know what can be done against it? I could upload the map if you want, maybe that helps. Also lots of units are made on the map, similar to Starcraft 1 (max food limit 200). The computers both are fast (also decent amount of memory) and connection is strong.

I know this is still kindy vague, but any help is appreciated :vw_love:.
 
Level 5
Joined
May 6, 2013
Messages
125
I really don't want to live in a world where pagefaults crash programs. I mean, i could buy 16gbs of ram, but still, the mere thought is scary.
Afaik, infinite loops don't actually create critical errors, but rather simply crash the game, so i don't think that that is what happened to you.
As for the critical error, it could be anything. And actually, without a proper crash log, we have little chance to tell your if you assumption is right. And even with a proper crash log (or better, a handful of crash logs), we have little chance to tell you. But at least the chance is bigger than without it, where it is near 0. If your game crashes with a fatal error, you will find some in your "Errors"-Folder. If we have some luck, we get to see eip, the stack and the module addresses. Put some of em in here (remember to use the spoiler tags) and we might be able to help you better (no promise though).
 
Level 17
Joined
Aug 19, 2007
Messages
1,380
@Imp Midna

did not know about the errors folder, good tip. Here are two error logs (played 2 games on that day, got 2 fatal errors :ogre_rage:).


==============================================================================
Warcraft III (build 6401)

Exe: E:\Games\Warcraft 3\war3.exe
Time: May 23, 2013 9:27:21.304 PM
User: Skynet
Computer: SKYNET-PC
------------------------------------------------------------------------------

This application has encountered a critical error:

FATAL ERROR!

Program: E:\Games\Warcraft 3\war3.exe
Exception: 0xC0000005 (ACCESS_VIOLATION) at 0023:6F75247B

The instruction at '0x6F75247B' referenced memory at '0x0EF9FFF8'.
The memory could not be 'read'.


War3Build: 1.26.0.6401
Played Maps\Download\(8) SH TEST The Hunters.w3x
Player 0 Schloffemaier Race Human StartLoc 3
Player 1 Germanizer Race Orc StartLoc 2
Player 2 Bionic AI Race Human StartLoc 7
Player 3 Bionic AI Race Human StartLoc 0
Player 4 Infested AI Race Orc StartLoc 6
Player 5 Infested AI Race Orc StartLoc 5
Player 6 Bionic AI Race Human StartLoc 1
Player 7 Infested AI Race Orc StartLoc 4
Player 8 <Unused> Race Undead StartLoc -1
Player 9 <Unused> Race Human StartLoc -1
Player 10 <Unused> Race Undead StartLoc -1
Player 11 <Unused> Race Orc StartLoc -1
------------------------------------------------------------------------------

----------------------------------------
x86 Registers
----------------------------------------

EAX=0EF9FFF4 EBX=094B00C8 ECX=094B00C8 EDX=000000A0 ESI=0EF9FFF4
EDI=0EF9FFF4 EBP=00000024 ESP=0018F894 EIP=6F75247B FLG=00210202
CS =0023 DS =002B ES =002B SS =002B FS =0053 GS =002B


----------------------------------------
Stack Trace (Manual)
----------------------------------------

Address Frame Logical addr Module

6F75247B 00000024 0001:0075147B E:\Games\Warcraft 3\Game.dll

----------------------------------------
Stack Trace (Using DBGHELP.DLL)
----------------------------------------

6F75247B Game.dll GameMain+7638059 (0x0EF9FFF4,0x00000007,0x00000003,0x1F6F0130)


----------------------------------------
Loaded Modules
----------------------------------------

0x00400000 - 0x0047D000 E:\Games\Warcraft 3\war3.exe
0x07480000 - 0x074F2000 C:\Windows\system32\DSOUND.DLL
0x075D0000 - 0x075D7000 C:\Windows\system32\avrt.dll
0x15000000 - 0x15061000 E:\Games\Warcraft 3\Storm.dll
0x21100000 - 0x2115F000 E:\Games\Warcraft 3\mss32.dll
0x22600000 - 0x22616000 E:\Games\Warcraft 3\redist\miles\Mssfast.m3d
0x22700000 - 0x22717000 E:\Games\Warcraft 3\redist\miles\Mssdolby.m3d
0x22C00000 - 0x22C18000 E:\Games\Warcraft 3\redist\miles\Msseax2.m3d
0x24600000 - 0x24611000 E:\Games\Warcraft 3\redist\miles\Reverb3.flt
0x26F00000 - 0x26F2A000 E:\Games\Warcraft 3\redist\miles\Mp3dec.asi
0x60000000 - 0x6005D000 E:\Games\Warcraft 3\ijl15.dll
0x683E0000 - 0x6887D000 C:\Windows\system32\atiumdva.dll
0x68970000 - 0x68A57000 C:\Windows\system32\DDRAW.dll
0x6A8E0000 - 0x6A8FC000 C:\Windows\system32\cryptnet.dll
0x6A900000 - 0x6A916000 C:\Windows\system32\GPAPI.dll
0x6A920000 - 0x6A95D000 C:\Windows\SysWOW64\bcryptprimitives.dll
0x6A960000 - 0x6A977000 C:\Windows\system32\bcrypt.dll
0x6A980000 - 0x6A9B8000 C:\Windows\system32\ncrypt.dll
0x6AB40000 - 0x6B132000 C:\Windows\system32\atiumdag.dll
0x6D4D0000 - 0x6D5BB000 C:\Windows\system32\dbghelp.dll
0x6D620000 - 0x6D725000 C:\Windows\system32\d3d8.dll
0x6D750000 - 0x6D834000 C:\Windows\system32\aticfx32.dll
0x6E7A0000 - 0x6E7A6000 C:\Windows\system32\DCIMAN32.dll
0x6E7F0000 - 0x6E8B8000 C:\Windows\system32\OPENGL32.dll
0x6F000000 - 0x6FBB5000 E:\Games\Warcraft 3\Game.dll
0x70E10000 - 0x70E90000 C:\Windows\system32\uxtheme.dll
0x71D50000 - 0x71DD4000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\COMCTL32.dll
0x73130000 - 0x731CB000 C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\MSVCR80.dll
0x73880000 - 0x7388B000 C:\Windows\system32\profapi.dll
0x73890000 - 0x73895000 C:\Windows\System32\wshtcpip.dll
0x738A0000 - 0x738DC000 C:\Windows\system32\mswsock.dll
0x738F0000 - 0x7392B000 C:\Windows\system32\rsaenh.dll
0x73930000 - 0x73946000 C:\Windows\system32\CRYPTSP.dll
0x73950000 - 0x73957000 C:\Windows\system32\WSOCK32.dll
0x73A50000 - 0x73A59000 C:\Windows\system32\VERSION.dll
0x740F0000 - 0x74115000 C:\Windows\system32\POWRPROF.dll
0x74120000 - 0x7412B000 C:\Windows\system32\atiu9pag.dll
0x74130000 - 0x74169000 C:\Windows\System32\MMDevApi.dll
0x741E0000 - 0x74202000 C:\Windows\system32\GLU32.dll
0x74360000 - 0x74366000 C:\Windows\system32\d3d8thk.dll
0x74380000 - 0x743B6000 C:\Windows\system32\AUDIOSES.DLL
0x74530000 - 0x74562000 C:\Windows\system32\WINMM.dll
0x74600000 - 0x74617000 C:\Windows\system32\USERENV.dll
0x74940000 - 0x74946000 C:\Windows\system32\SensApi.dll
0x74C30000 - 0x74C51000 C:\Windows\system32\ntmarta.dll
0x74C60000 - 0x74D55000 C:\Windows\System32\PROPSYS.dll
0x74F40000 - 0x74F53000 C:\Windows\system32\dwmapi.dll
0x750D0000 - 0x750DC000 C:\Windows\syswow64\CRYPTBASE.dll
0x750E0000 - 0x75140000 C:\Windows\syswow64\SspiCli.dll
0x75140000 - 0x75159000 C:\Windows\SysWOW64\sechost.dll
0x75160000 - 0x75200000 C:\Windows\syswow64\ADVAPI32.dll
0x75230000 - 0x75320000 C:\Windows\syswow64\RPCRT4.dll
0x75320000 - 0x75367000 C:\Windows\syswow64\KERNELBASE.dll
0x75370000 - 0x7548E000 C:\Windows\syswow64\CRYPT32.dll
0x75520000 - 0x75580000 C:\Windows\syswow64\IMM32.dll
0x75580000 - 0x75739000 C:\Windows\syswow64\iertutil.dll
0x75740000 - 0x75851000 C:\Windows\syswow64\urlmon.dll
0x75860000 - 0x75960000 C:\Windows\syswow64\USER32.dll
0x75960000 - 0x75A7B000 C:\Windows\syswow64\WININET.dll
0x75A80000 - 0x75B1D000 C:\Windows\syswow64\USP10.dll
0x75B80000 - 0x75B8A000 C:\Windows\syswow64\LPK.dll
0x75B90000 - 0x75B9C000 C:\Windows\syswow64\MSASN1.dll
0x75BA0000 - 0x75C30000 C:\Windows\syswow64\GDI32.dll
0x75C30000 - 0x75CB3000 C:\Windows\syswow64\CLBCatQ.DLL
0x75CF0000 - 0x75D17000 C:\Windows\syswow64\CFGMGR32.dll
0x75D20000 - 0x75DCC000 C:\Windows\syswow64\msvcrt.dll
0x75DD0000 - 0x75DE2000 C:\Windows\syswow64\DEVOBJ.dll
0x75DF0000 - 0x75E7F000 C:\Windows\syswow64\OLEAUT32.dll
0x75E90000 - 0x75EC5000 C:\Windows\syswow64\WS2_32.dll
0x75ED0000 - 0x75FE0000 C:\Windows\syswow64\kernel32.dll
0x75FE0000 - 0x7617D000 C:\Windows\syswow64\SETUPAPI.dll
0x76180000 - 0x761FB000 C:\Windows\syswow64\comdlg32.dll
0x76200000 - 0x76206000 C:\Windows\syswow64\NSI.dll
0x76210000 - 0x7636C000 C:\Windows\syswow64\ole32.dll
0x76370000 - 0x763C7000 C:\Windows\syswow64\SHLWAPI.dll
0x763D0000 - 0x7701A000 C:\Windows\syswow64\SHELL32.dll
0x77020000 - 0x77065000 C:\Windows\syswow64\WLDAP32.dll
0x77070000 - 0x7713C000 C:\Windows\syswow64\MSCTF.dll
0x779D0000 - 0x779D3000 C:\Windows\syswow64\Normaliz.dll
0x77A00000 - 0x77B80000 C:\Windows\SysWOW64\ntdll.dll


----------------------------------------
Memory Dump
----------------------------------------

Code: 16 bytes starting at (EIP = 6F75247B)

6F75247B: 8B 46 04 57 8D 7A 01 25 FF FF 03 00 33 D2 F7 F7 .F.W.z.%....3...


Stack: 1024 bytes starting at (ESP = 0018F894)

* = addr ** *
0018F890: BC AA 02 0F C8 00 4B 09 77 27 75 6F F4 FF F9 0E ......K.w'uo....
0018F8A0: 07 00 00 00 03 00 00 00 30 01 6F 1F C8 00 4B 09 ........0.o...K.
0018F8B0: CC 78 75 6F F4 FF F9 0E D0 F8 18 00 C0 00 00 00 .xuo............
0018F8C0: C8 00 4B 09 30 01 6F 1F 10 00 00 00 00 00 00 AA ..K.0.o.........
0018F8D0: 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 ....$...........
0018F8E0: C0 60 60 FA 10 00 00 00 D6 A9 75 6F B8 AB 75 6F .``.......uo..uo
0018F8F0: 01 00 00 00 CC 00 6F 1F 30 01 6F 1F C0 00 6F 1F ......o.0.o...o.
0018F900: C8 00 4B 09 81 00 00 00 9E 00 00 00 A0 00 00 00 ..K.............
0018F910: 80 00 00 00 10 00 00 00 04 00 00 00 04 00 00 00 ................
0018F920: 34 B3 BF C2 00 80 D1 42 90 DF 02 0F A1 00 00 00 4......B........
0018F930: CD CC 4C BF CD 20 12 40 00 00 00 00 01 00 00 00 ..L.. .@........
0018F940: CD CC 4C 3F 01 4A 40 BF 80 00 00 00 00 00 C6 46 [email protected]
0018F950: 00 00 48 45 9A 19 EF BD 33 0E D3 3F 00 00 00 00 ..HE....3..?....
0018F960: 00 00 D0 40 16 AC 75 6F A2 00 00 00 CC F9 18 00 [email protected]........
0018F970: 00 00 00 00 C8 00 4B 09 08 FA 18 00 F5 01 00 00 ......K.........
0018F980: C8 0A 77 6F 00 09 4B 09 A8 FA 18 00 2C 6B 01 6F ..wo..K.....,k.o
0018F990: CC F9 18 00 A8 FA 18 00 CD CC CC 3C 80 00 70 0C ...........<..p.
0018F9A0: 88 00 F9 10 C2 C5 39 6F CD CC CC 3C 56 55 69 AB ......9o...<VUi.
0018F9B0: 88 00 F9 10 9C E6 AC 6F 00 00 00 00 A4 E6 AC 6F .......o.......o
0018F9C0: 89 66 26 44 80 00 70 0C 00 00 80 3F 27 2C C2 46 .f&D..p....?',.F
0018F9D0: 77 7D 1D 45 0E 0E AC 44 00 00 80 3F 86 A4 1B B3 w}.E...D...?....
0018F9E0: 00 00 00 00 9C 08 01 33 D0 3B 54 3F 42 27 0F 3F .......3.;T?B'.?
0018F9F0: 8B 11 AE 32 43 27 0F 3F CE 3B 54 BF 27 2C C2 C6 ...2C'.?.;T.',..
0018FA00: CD AB 32 C5 8C FA 85 C3 59 BE C1 46 95 62 1F 45 ..2.....Y..F.b.E
0018FA10: 99 88 9F 44 59 BE C1 46 BA 95 22 45 A2 D9 A3 44 ...DY..F.."E...D
0018FA20: EB 99 C2 46 BA 95 22 45 A2 D9 A3 44 EB 99 C2 46 ...F.."E...D...F
0018FA30: 95 62 1F 45 99 88 9F 44 E1 BA AC 46 3F 3E 7C 45 .b.E...D...F?>|E
0018FA40: 01 01 63 C5 DC BA AC 46 B6 1D CE 45 17 2E EE C4 ..c....F...E....
0018FA50: 5F 9D D7 46 B7 1D CE 45 16 2E EE C4 63 9D D7 46 _..F...E....c..F
0018FA60: 40 3E 7C 45 01 01 63 C5 D4 2E E9 3F 00 00 00 00 @>|E..c....?....
0018FA70: 00 00 00 00 00 00 00 00 00 00 00 00 11 46 4F 40 .............FO@
0018FA80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FA90: 78 39 85 3F 00 00 80 3F 00 00 00 00 00 00 00 00 x9.?...?........
0018FAA0: E6 14 4C C3 00 00 00 00 27 2C C2 46 28 28 57 45 ..L.....',.F((WE
0018FAB0: 06 6F 08 41 27 2C C2 46 77 7D 1D 45 0E 0E AC 44 .o.A',.Fw}.E...D
0018FAC0: 89 66 CE 46 88 FC 18 00 CB 36 82 6F 00 00 00 00 .f.F.....6.o....
0018FAD0: 4B D8 5F 6F 90 C2 75 3C 2F 29 82 BA B4 E6 AC 6F K._o..u</).....o
0018FAE0: 9C E6 AC 6F 00 00 00 00 04 44 66 09 88 00 45 11 ...o.....Df...E.
0018FAF0: 00 00 80 3F 00 00 00 00 01 00 00 00 00 00 00 00 ...?............
0018FB00: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FB10: 00 00 00 00 9A 99 19 3F CD CC 4C 3F 00 00 00 00 .......?..L?....
0018FB20: 00 00 00 00 9A 99 19 3F CD CC 4C 3F 00 00 00 00 .......?..L?....
0018FB30: B8 1E 05 3E CD CC 4C 3F E2 7A 14 3F 00 00 00 00 ...>..L?.z.?....
0018FB40: B8 1E 05 3E CD CC 4C 3F E2 7A 14 3F 8B D8 5F 6F ...>..L?.z.?.._o
0018FB50: 00 00 00 00 00 00 00 00 00 00 00 00 B0 01 82 04 ................
0018FB60: 98 00 40 09 00 00 80 3F 00 00 00 00 01 00 00 00 ..@....?........
0018FB70: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
0018FB80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FB90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FBA0: 00 00 00 00 00 00 00 00 CD CC 4C 3F 9A 99 19 3F ..........L?...?
0018FBB0: 00 00 00 00 00 00 00 00 CD CC 4C 3F 9A 99 19 3F ..........L?...?
0018FBC0: 38 E6 5F 6F 00 00 00 00 80 00 40 09 00 00 00 00 8._o......@.....
0018FBD0: 9B E5 7A 6F 98 00 40 09 90 C2 75 3C 06 57 69 AB [email protected]<.Wi.
0018FBE0: 00 00 00 00 28 01 89 04 00 00 80 3F 21 11 FC 0A ....(......?!...
0018FBF0: 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 80 3F .......?.......?
0018FC00: 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 .......?........
0018FC10: 00 00 80 3F 00 00 80 3F 00 00 20 40 00 00 00 00 ...?...?.. @....
0018FC20: 00 00 00 00 00 00 00 00 00 00 00 00 55 55 55 40 ............UUU@
0018FC30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FC40: 6F 12 83 3B 00 00 00 00 00 00 80 BF 00 00 80 BF o..;............
0018FC50: 00 00 80 BF 00 00 80 3F 00 00 80 3F 00 00 00 00 .......?...?....
0018FC60: 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 ...........?....
0018FC70: 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 ...........?....
0018FC80: 00 00 00 00 00 00 00 00 C4 FC 18 00 0B CD 84 6F ...............o
0018FC90: FF FF FF FF 3D 25 63 6F 7A 50 69 AB 88 00 82 04 ....=%cozPi.....


------------------------------------------------------------------------------




==============================================================================
Warcraft III (build 6401)

Exe: E:\Games\Warcraft 3\war3.exe
Time: May 23, 2013 9:57:53.405 PM
User: Skynet
Computer: SKYNET-PC
------------------------------------------------------------------------------

This application has encountered a critical error:

FATAL ERROR!

Program: E:\Games\Warcraft 3\war3.exe
Exception: 0xC0000005 (ACCESS_VIOLATION) at 0023:6F75247B

The instruction at '0x6F75247B' referenced memory at '0x1016FFF8'.
The memory could not be 'read'.


War3Build: 1.26.0.6401
Played Maps\Download\(8) SH TEST The Hunters.w3x
Player 0 Schloffemaier Race Human StartLoc 5
Player 1 Bionic AI Race Human StartLoc 3
Player 2 Infested AI Race Orc StartLoc 7
Player 3 Germanizer Race Orc StartLoc 4
Player 4 Bionic AI Race Human StartLoc 6
Player 5 Infested AI Race Orc StartLoc 0
Player 6 Bionic AI Race Human StartLoc 1
Player 7 Race NightElf StartLoc 7
Player 8 <Unused> Race NightElf StartLoc -1
Player 9 <Unused> Race NightElf StartLoc -1
Player 10 <Unused> Race Undead StartLoc -1
Player 11 <Unused> Race NightElf StartLoc -1
------------------------------------------------------------------------------

----------------------------------------
x86 Registers
----------------------------------------

EAX=1016FFF4 EBX=094600C8 ECX=094600C8 EDX=000000A0 ESI=1016FFF4
EDI=1016FFF4 EBP=00000090 ESP=0018F894 EIP=6F75247B FLG=00210202
CS =0023 DS =002B ES =002B SS =002B FS =0053 GS =002B


----------------------------------------
Stack Trace (Manual)
----------------------------------------

Address Frame Logical addr Module

6F75247B 00000090 0001:0075147B E:\Games\Warcraft 3\Game.dll

----------------------------------------
Stack Trace (Using DBGHELP.DLL)
----------------------------------------

6F75247B Game.dll GameMain+7638059 (0x1016FFF4,0x00000007,0x0000000C,0x2008F9B0)


----------------------------------------
Loaded Modules
----------------------------------------

0x00400000 - 0x0047D000 E:\Games\Warcraft 3\war3.exe
0x07470000 - 0x074E2000 C:\Windows\system32\DSOUND.DLL
0x075D0000 - 0x075D7000 C:\Windows\system32\avrt.dll
0x15000000 - 0x15061000 E:\Games\Warcraft 3\Storm.dll
0x21100000 - 0x2115F000 E:\Games\Warcraft 3\mss32.dll
0x22600000 - 0x22616000 E:\Games\Warcraft 3\redist\miles\Mssfast.m3d
0x22700000 - 0x22717000 E:\Games\Warcraft 3\redist\miles\Mssdolby.m3d
0x22C00000 - 0x22C18000 E:\Games\Warcraft 3\redist\miles\Msseax2.m3d
0x24600000 - 0x24611000 E:\Games\Warcraft 3\redist\miles\Reverb3.flt
0x26F00000 - 0x26F2A000 E:\Games\Warcraft 3\redist\miles\Mp3dec.asi
0x60000000 - 0x6005D000 E:\Games\Warcraft 3\ijl15.dll
0x68280000 - 0x68872000 C:\Windows\system32\atiumdag.dll
0x68970000 - 0x68A57000 C:\Windows\system32\DDRAW.dll
0x6A8E0000 - 0x6A8FC000 C:\Windows\system32\cryptnet.dll
0x6A900000 - 0x6A916000 C:\Windows\system32\GPAPI.dll
0x6A920000 - 0x6A95D000 C:\Windows\SysWOW64\bcryptprimitives.dll
0x6A960000 - 0x6A977000 C:\Windows\system32\bcrypt.dll
0x6A980000 - 0x6A9B8000 C:\Windows\system32\ncrypt.dll
0x6ACA0000 - 0x6B13D000 C:\Windows\system32\atiumdva.dll
0x6D4D0000 - 0x6D5BB000 C:\Windows\system32\dbghelp.dll
0x6D640000 - 0x6D724000 C:\Windows\system32\aticfx32.dll
0x6D730000 - 0x6D835000 C:\Windows\system32\d3d8.dll
0x6E7A0000 - 0x6E7A6000 C:\Windows\system32\DCIMAN32.dll
0x6E7F0000 - 0x6E8B8000 C:\Windows\system32\OPENGL32.dll
0x6F000000 - 0x6FBB5000 E:\Games\Warcraft 3\Game.dll
0x70E10000 - 0x70E90000 C:\Windows\system32\uxtheme.dll
0x71D50000 - 0x71DD4000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.17514_none_ec83dffa859149af\COMCTL32.dll
0x73130000 - 0x731CB000 C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6195_none_d09154e044272b9a\MSVCR80.dll
0x73880000 - 0x7388B000 C:\Windows\system32\profapi.dll
0x73890000 - 0x73895000 C:\Windows\System32\wshtcpip.dll
0x738A0000 - 0x738DC000 C:\Windows\system32\mswsock.dll
0x738F0000 - 0x7392B000 C:\Windows\system32\rsaenh.dll
0x73930000 - 0x73946000 C:\Windows\system32\CRYPTSP.dll
0x73950000 - 0x73957000 C:\Windows\system32\WSOCK32.dll
0x73A50000 - 0x73A59000 C:\Windows\system32\VERSION.dll
0x740F0000 - 0x74115000 C:\Windows\system32\POWRPROF.dll
0x74120000 - 0x7412B000 C:\Windows\system32\atiu9pag.dll
0x74130000 - 0x74169000 C:\Windows\System32\MMDevApi.dll
0x741E0000 - 0x74202000 C:\Windows\system32\GLU32.dll
0x74360000 - 0x74366000 C:\Windows\system32\d3d8thk.dll
0x74380000 - 0x743B6000 C:\Windows\system32\AUDIOSES.DLL
0x74530000 - 0x74562000 C:\Windows\system32\WINMM.dll
0x74600000 - 0x74617000 C:\Windows\system32\USERENV.dll
0x74940000 - 0x74946000 C:\Windows\system32\SensApi.dll
0x74C30000 - 0x74C51000 C:\Windows\system32\ntmarta.dll
0x74C60000 - 0x74D55000 C:\Windows\System32\PROPSYS.dll
0x74F40000 - 0x74F53000 C:\Windows\system32\dwmapi.dll
0x750D0000 - 0x750DC000 C:\Windows\syswow64\CRYPTBASE.dll
0x750E0000 - 0x75140000 C:\Windows\syswow64\SspiCli.dll
0x75140000 - 0x75159000 C:\Windows\SysWOW64\sechost.dll
0x75160000 - 0x75200000 C:\Windows\syswow64\ADVAPI32.dll
0x75230000 - 0x75320000 C:\Windows\syswow64\RPCRT4.dll
0x75320000 - 0x75367000 C:\Windows\syswow64\KERNELBASE.dll
0x75370000 - 0x7548E000 C:\Windows\syswow64\CRYPT32.dll
0x75520000 - 0x75580000 C:\Windows\syswow64\IMM32.dll
0x75580000 - 0x75739000 C:\Windows\syswow64\iertutil.dll
0x75740000 - 0x75851000 C:\Windows\syswow64\urlmon.dll
0x75860000 - 0x75960000 C:\Windows\syswow64\USER32.dll
0x75960000 - 0x75A7B000 C:\Windows\syswow64\WININET.dll
0x75A80000 - 0x75B1D000 C:\Windows\syswow64\USP10.dll
0x75B80000 - 0x75B8A000 C:\Windows\syswow64\LPK.dll
0x75B90000 - 0x75B9C000 C:\Windows\syswow64\MSASN1.dll
0x75BA0000 - 0x75C30000 C:\Windows\syswow64\GDI32.dll
0x75C30000 - 0x75CB3000 C:\Windows\syswow64\CLBCatQ.DLL
0x75CF0000 - 0x75D17000 C:\Windows\syswow64\CFGMGR32.dll
0x75D20000 - 0x75DCC000 C:\Windows\syswow64\msvcrt.dll
0x75DD0000 - 0x75DE2000 C:\Windows\syswow64\DEVOBJ.dll
0x75DF0000 - 0x75E7F000 C:\Windows\syswow64\OLEAUT32.dll
0x75E90000 - 0x75EC5000 C:\Windows\syswow64\WS2_32.dll
0x75ED0000 - 0x75FE0000 C:\Windows\syswow64\kernel32.dll
0x75FE0000 - 0x7617D000 C:\Windows\syswow64\SETUPAPI.dll
0x76180000 - 0x761FB000 C:\Windows\syswow64\comdlg32.dll
0x76200000 - 0x76206000 C:\Windows\syswow64\NSI.dll
0x76210000 - 0x7636C000 C:\Windows\syswow64\ole32.dll
0x76370000 - 0x763C7000 C:\Windows\syswow64\SHLWAPI.dll
0x763D0000 - 0x7701A000 C:\Windows\syswow64\SHELL32.dll
0x77020000 - 0x77065000 C:\Windows\syswow64\WLDAP32.dll
0x77070000 - 0x7713C000 C:\Windows\syswow64\MSCTF.dll
0x779D0000 - 0x779D3000 C:\Windows\syswow64\Normaliz.dll
0x77A00000 - 0x77B80000 C:\Windows\SysWOW64\ntdll.dll


----------------------------------------
Memory Dump
----------------------------------------

Code: 16 bytes starting at (EIP = 6F75247B)

6F75247B: 8B 46 04 57 8D 7A 01 25 FF FF 03 00 33 D2 F7 F7 .F.W.z.%....3...


Stack: 1024 bytes starting at (ESP = 0018F894)

* = addr ** *
0018F890: A0 04 22 10 C8 00 46 09 77 27 75 6F F4 FF 16 10 .."...F.w'uo....
0018F8A0: 07 00 00 00 0C 00 00 00 B0 F9 08 20 C8 00 46 09 ........... ..F.
0018F8B0: CC 78 75 6F F4 FF 16 10 D0 F8 18 00 C0 00 00 00 .xuo............
0018F8C0: C8 00 46 09 B0 F9 08 20 10 00 00 00 00 00 00 AA ..F.... ........
0018F8D0: 00 00 00 00 90 00 00 00 00 00 00 00 00 00 00 00 ................
0018F8E0: C0 60 60 FA 10 00 00 00 D6 A9 75 6F B8 AB 75 6F .``.......uo..uo
0018F8F0: 01 00 00 00 4C F9 08 20 B0 F9 08 20 40 F9 08 20 ....L.. ... @..
0018F900: C8 00 46 09 A2 00 00 00 19 00 00 00 1C 00 00 00 ..F.............
0018F910: A0 00 00 00 10 00 00 00 04 00 00 00 04 00 00 00 ................
0018F920: 34 B3 BF C2 00 80 88 42 A0 04 22 10 1C 00 00 00 4......B..".....
0018F930: CD CC 4C BF 9A 28 D8 3F 00 00 00 00 01 00 00 00 ..L..(.?........
0018F940: CD CC 4C 3F CD 00 63 BF A1 00 00 00 00 00 02 46 ..L?..c........F
0018F950: 00 00 E8 45 33 15 36 BF CD B2 C1 3F 00 00 00 00 ...E3.6....?....
0018F960: 00 20 D4 40 16 AC 75 6F 1D 00 00 00 CC F9 18 00 . [email protected]........
0018F970: 00 00 00 00 C8 00 46 09 08 FA 18 00 8F 01 00 00 ......F.........
0018F980: C8 0A 77 6F 00 09 46 09 A8 FA 18 00 2C 6B 01 6F ..wo..F.....,k.o
0018F990: CC F9 18 00 A8 FA 18 00 CD CC CC 3C 80 00 C0 0C ...........<....
0018F9A0: 88 00 EC 10 C2 C5 39 6F CD CC CC 3C 13 DC 79 C9 ......9o...<..y.
0018F9B0: 88 00 EC 10 9C E6 AC 6F 00 00 00 00 A4 E6 AC 6F .......o.......o
0018F9C0: 44 09 E6 42 80 00 C0 0C 00 00 80 3F EF 4B E0 45 D..B.......?.K.E
0018F9D0: 17 0B BE 45 25 B5 B4 44 00 00 80 3F 86 A4 1B B3 ...E%..D...?....
0018F9E0: 00 00 00 00 9B 08 01 33 CE 3B 54 3F 45 27 0F 3F .......3.;T?E'.?
0018F9F0: 8E 11 AE 32 45 27 0F 3F CE 3B 54 BF EF 4B E0 C5 ...2E'.?.;T..K..
0018FA00: CE D0 B6 C5 95 A2 09 C5 B8 94 DE 45 99 FD BE 45 ...........E...E
0018FA10: A5 2F A8 44 B8 94 DE 45 2B 97 C0 45 AF 80 AC 44 ./.D...E+..E...D
0018FA20: FF 02 E2 45 2B 97 C0 45 AF 80 AC 44 00 03 E2 45 ...E+..E...D...E
0018FA30: 99 FD BE 45 A5 2F A8 44 E9 86 8A 45 59 6B ED 45 ...E./.D...EYk.E
0018FA40: 7D AD 5E C5 E2 86 8A 45 F6 B4 1E 46 0A 87 E5 C4 }.^....E...F....
0018FA50: 77 08 1B 46 F6 B4 1E 46 09 87 E5 C4 7A 08 1B 46 w..F...F....z..F
0018FA60: 59 6B ED 45 7C AD 5E C5 D4 2E E9 3F 00 00 00 00 Yk.E|.^....?....
0018FA70: 00 00 00 00 00 00 00 00 00 00 00 00 11 46 4F 40 .............FO@
0018FA80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FA90: 78 39 85 3F 00 00 80 3F 00 00 00 00 00 00 00 00 x9.?...?........
0018FAA0: E6 14 4C C3 00 00 00 00 EF 4B E0 45 70 E0 DA 45 ..L......K.Ep..E
0018FAB0: 53 7F 9B 42 EF 4B E0 45 17 0B BE 45 25 B5 B4 44 S..B.K.E...E%..D
0018FAC0: 51 82 09 46 88 FC 18 00 CB 36 82 6F 00 00 00 00 Q..F.....6.o....
0018FAD0: 4B D8 5F 6F 6F 12 83 3C 2F 29 82 BA B4 E6 AC 6F K._oo..</).....o
0018FAE0: 9C E6 AC 6F 00 00 00 00 24 43 61 09 88 00 2C 11 ...o....$Ca...,.
0018FAF0: 00 00 80 3F 00 00 00 00 01 00 00 00 00 00 00 00 ...?............
0018FB00: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FB10: 00 00 00 00 9A 99 19 3F CD CC 4C 3F 00 00 00 00 .......?..L?....
0018FB20: 00 00 00 00 9A 99 19 3F CD CC 4C 3F 00 00 00 00 .......?..L?....
0018FB30: B8 1E 05 3E CD CC 4C 3F E2 7A 14 3F 00 00 00 00 ...>..L?.z.?....
0018FB40: B8 1E 05 3E CD CC 4C 3F E2 7A 14 3F 8B D8 5F 6F ...>..L?.z.?.._o
0018FB50: 00 00 00 00 00 00 00 00 00 00 00 00 B0 01 FD 03 ................
0018FB60: 98 00 3B 09 00 00 80 3F 00 00 00 00 01 00 00 00 ..;....?........
0018FB70: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
0018FB80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FB90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FBA0: 00 00 00 00 00 00 00 00 CD CC 4C 3F 9A 99 19 3F ..........L?...?
0018FBB0: 00 00 00 00 00 00 00 00 CD CC 4C 3F 9A 99 19 3F ..........L?...?
0018FBC0: 38 E6 5F 6F 00 00 00 00 80 00 3B 09 00 00 00 00 8._o......;.....
0018FBD0: 9B E5 7A 6F 98 00 3B 09 6F 12 83 3C 43 DE 79 C9 ..zo..;.o..<C.y.
0018FBE0: 00 00 00 00 28 01 64 06 00 00 80 3F 0B 28 FC 0A ....(.d....?.(..
0018FBF0: 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 80 3F .......?.......?
0018FC00: 00 00 00 00 00 00 80 3F 00 00 00 00 00 00 00 00 .......?........
0018FC10: 00 00 80 3F 00 00 80 3F 00 00 20 40 00 00 00 00 ...?...?.. @....
0018FC20: 00 00 00 00 00 00 00 00 00 00 00 00 55 55 55 40 ............UUU@
0018FC30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0018FC40: 6F 12 83 3B 00 00 00 00 00 00 80 BF 00 00 80 BF o..;............
0018FC50: 00 00 80 BF 00 00 80 3F 00 00 80 3F 00 00 00 00 .......?...?....
0018FC60: 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 ...........?....
0018FC70: 00 00 00 00 00 00 00 00 00 00 80 3F 00 00 00 00 ...........?....
0018FC80: 00 00 00 00 00 00 00 00 C4 FC 18 00 0B CD 84 6F ...............o
0018FC90: FF FF FF FF 3D 25 63 6F 3F D9 79 C9 88 00 FD 03 ....=%co?.y.....


------------------------------------------------------------------------------



@deathismyfriend

could be a bad trigger, the only one I can think of is this one (that I did not had have previous version where I had no fatal errors), it is for removing a locust dummy effect:

  • Remove RCore Effect
    • Events
      • Unit - A unit Dies
    • Conditions
      • (Unit-type of (Dying unit)) Equal to Nuclear Pylon
    • Actions
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units owned by (Owner of (Dying unit)) of type Radiation) and do (Actions)
        • Loop - Actions
          • Unit - Hide (Picked unit)
          • Custom script: call UnitRemoveAbility(GetEnumUnit(),'Aloc')
          • Unit - Unhide (Picked unit)
      • Set TEMP_PointRadiating2 = (Position of (Dying unit))
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 25.00 of TEMP_PointRadiating2 matching ((Unit-type of (Matching unit)) Equal to Radiation)) and do (Actions)
        • Loop - Actions
          • Unit - Remove (Picked unit) from the game
      • Custom script: call RemoveLocation(udg_TEMP_PointRadiating2)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units owned by (Owner of (Dying unit)) of type Radiation) and do (Actions)
        • Loop - Actions
          • Custom script: call UnitAddAbility(GetEnumUnit(),'Aloc')
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,258
3.Pagefaults caused by too many memory leaks crash the game.
Sorry but that reason is "shit". Page faults cannot crash a process as they happen entirely transparently to processes at the operating system level.

What can happen is a Out Of Memory error, which occurs when a process tries to allocate a page when it has already allocated its entire virtual address space. Seeing how WarCraft III would need to be between 2GB and 4GB process size for this to occur, in practice it never happens. It does happen if an infinite loop cases the game to allocate data, in which case it will hit the limit nearly immediately.

Leaks cause another problem. WarCraft III is designed to handle a finite amount of structures. If you leak these structures, the pool of free structures available to use diminishes. Eventually it is possible you run out of free structures and the game has to crash. An example of such a limit is a hardcoded limit of 60,000 destructible (about), after which the game will crash.
 
Infinite loops doesn't show an Error Message,it just automatically closes Warcraft 3(see Fatal Error by Magtheridon96)

if u move a unit / item / destructible towards map bounds and it moves off map bounds due to infinite loop. It does create a crash report.

also when checking pathability / collision if they use the method that uses an item and it gets off map bounds it will create a crash report also.
 
Level 26
Joined
Aug 18, 2009
Messages
4,097
if u move a unit / item / destructible towards map bounds and it moves off map bounds due to infinite loop. It does create a crash report.

also when checking pathability / collision if they use the method that uses an item and it gets off map bounds it will create a crash report also.

That is because the state of being out of bounds is not secured and crashes under additional conditions (for units at least). It can be done without any loop.
 
Level 17
Joined
Aug 19, 2007
Messages
1,380
that shouldnt cause the problem. umm u should change dying unit to triggering unit. never use dying unit entering unit and a few others always use triggering unit when u can.
, ok ty for tip

to find out if its a trigger problem turn off all of ur triggers if the crash doesnt happen when all triggers are turned off its a trigger problem.
, ok I will try this

Sorry but that reason is "shit". Page faults cannot crash a process as they happen entirely transparently to processes at the operating system level.

What can happen is a Out Of Memory error, which occurs when a process tries to allocate a page when it has already allocated its entire virtual address space. Seeing how WarCraft III would need to be between 2GB and 4GB process size for this to occur, in practice it never happens. It does happen if an infinite loop cases the game to allocate data, in which case it will hit the limit nearly immediately.

Leaks cause another problem. WarCraft III is designed to handle a finite amount of structures. If you leak these structures, the pool of free structures available to use diminishes. Eventually it is possible you run out of free structures and the game has to crash. An example of such a limit is a hardcoded limit of 60,000 destructible (about), after which the game will crash.
, look I am not an expert on this. I thought fatal error through page faults is similar to some memory problem. Heck, first time I read about page faults.

Also im thinking the same thing u r. It has to be an infinite loop or something is corrupted ( doubt this one).
, probably something like that indeed.

ik it can be done without a loop but u normally dont see someone try to create something off of the map.
, hmm that reminds me of this trigger I have for the AI, could be a problem:


  • AI to much minerals
    • Events
      • Time - Every 10.00 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Player 1 (Red) controller) Equal to Computer
          • (Player 1 (Red) Current lumber) Greater than or equal to 800
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Race of Player 1 (Red)) Equal to Human
            • Then - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 1 (Red) of type Nexus)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 1 (Red) of type SCR (Space Construction Robot))) to build a Energy Cannon at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
            • Else - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 1 (Red) of type Infested Command Center)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 1 (Red) of type Infested Worker)) to build a Spore Turret at TEMP_PointAI2
              • Unit - Order (Random unit from (Units owned by Player 1 (Red) of type Infested Worker)) to build a Flamethrower Turret at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Player 2 (Blue) controller) Equal to Computer
          • (Player 2 (Blue) Current lumber) Greater than or equal to 800
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Race of Player 2 (Blue)) Equal to Human
            • Then - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 2 (Blue) of type Nexus)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 2 (Blue) of type SCR (Space Construction Robot))) to build a Energy Cannon at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
            • Else - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 2 (Blue) of type Infested Command Center)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 2 (Blue) of type Infested Worker)) to build a Spore Turret at TEMP_PointAI2
              • Unit - Order (Random unit from (Units owned by Player 2 (Blue) of type Infested Worker)) to build a Flamethrower Turret at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Player 3 (Teal) controller) Equal to Computer
          • (Player 3 (Teal) Current lumber) Greater than or equal to 800
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Race of Player 3 (Teal)) Equal to Human
            • Then - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 3 (Teal) of type Nexus)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 3 (Teal) of type SCR (Space Construction Robot))) to build a Energy Cannon at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
            • Else - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 3 (Teal) of type Infested Command Center)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 3 (Teal) of type Infested Worker)) to build a Spore Turret at TEMP_PointAI2
              • Unit - Order (Random unit from (Units owned by Player 3 (Teal) of type Infested Worker)) to build a Flamethrower Turret at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Player 4 (Purple) controller) Equal to Computer
          • (Player 4 (Purple) Current lumber) Greater than or equal to 800
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Race of Player 4 (Purple)) Equal to Human
            • Then - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 4 (Purple) of type Nexus)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 4 (Purple) of type SCR (Space Construction Robot))) to build a Energy Cannon at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
            • Else - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 4 (Purple) of type Infested Command Center)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 4 (Purple) of type Infested Worker)) to build a Spore Turret at TEMP_PointAI2
              • Unit - Order (Random unit from (Units owned by Player 4 (Purple) of type Infested Worker)) to build a Flamethrower Turret at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Player 5 (Yellow) controller) Equal to Computer
          • (Player 5 (Yellow) Current lumber) Greater than or equal to 800
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Race of Player 5 (Yellow)) Equal to Human
            • Then - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 5 (Yellow) of type Nexus)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 5 (Yellow) of type SCR (Space Construction Robot))) to build a Energy Cannon at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
            • Else - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 5 (Yellow) of type Infested Command Center)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 5 (Yellow) of type Infested Worker)) to build a Spore Turret at TEMP_PointAI2
              • Unit - Order (Random unit from (Units owned by Player 5 (Yellow) of type Infested Worker)) to build a Flamethrower Turret at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Player 6 (Orange) controller) Equal to Computer
          • (Player 6 (Orange) Current lumber) Greater than or equal to 800
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Race of Player 6 (Orange)) Equal to Human
            • Then - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 6 (Orange) of type Nexus)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 6 (Orange) of type SCR (Space Construction Robot))) to build a Energy Cannon at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
            • Else - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 6 (Orange) of type Infested Command Center)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 6 (Orange) of type Infested Worker)) to build a Spore Turret at TEMP_PointAI2
              • Unit - Order (Random unit from (Units owned by Player 6 (Orange) of type Infested Worker)) to build a Flamethrower Turret at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Player 7 (Green) controller) Equal to Computer
          • (Player 7 (Green) Current lumber) Greater than or equal to 800
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Race of Player 7 (Green)) Equal to Human
            • Then - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 7 (Green) of type Nexus)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 7 (Green) of type SCR (Space Construction Robot))) to build a Energy Cannon at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
            • Else - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 7 (Green) of type Infested Command Center)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 7 (Green) of type Infested Worker)) to build a Spore Turret at TEMP_PointAI2
              • Unit - Order (Random unit from (Units owned by Player 7 (Green) of type Infested Worker)) to build a Flamethrower Turret at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Player 8 (Pink) controller) Equal to Computer
          • (Player 8 (Pink) Current lumber) Greater than or equal to 800
        • Then - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Race of Player 8 (Pink)) Equal to Human
            • Then - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 8 (Pink) of type Nexus)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 8 (Pink) of type SCR (Space Construction Robot))) to build a Energy Cannon at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
            • Else - Actions
              • Set TEMP_PointAI = (Position of (Random unit from (Units owned by Player 8 (Pink) of type Infested Command Center)))
              • Set TEMP_PointAI2 = (TEMP_PointAI offset by 750.00 towards (Random angle) degrees)
              • Unit - Order (Random unit from (Units owned by Player 8 (Pink) of type Infested Worker)) to build a Spore Turret at TEMP_PointAI2
              • Unit - Order (Random unit from (Units owned by Player 8 (Pink) of type Infested Worker)) to build a Flamethrower Turret at TEMP_PointAI2
              • Custom script: call RemoveLocation(udg_TEMP_PointAI)
              • Custom script: call RemoveLocation(udg_TEMP_PointAI2)
        • Else - Actions


Also I looked again through the triggers I think I should mention this trigger too. It is for an ability based of how of terror and uses 2 triggers. It suppose to scare enemies for a short time, letting them run away. Works quite well but maybe it is part of the problem (ps: I know waits should be avoided but I dont mind it here since it works good enough ingame):


  • Fear
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Fear (Flesh Giant)
    • Actions
      • Set TEMP_PointFear = (Position of (Casting unit))
      • Set TEMP_PointFear2 = (TEMP_PointFear offset by 1000.00 towards (Random angle) degrees)
      • Custom script: set bj_wantDestroyGroup = true
      • Unit Group - Pick every unit in (Units within 700.00 of TEMP_PointFear matching ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and (((Owner of (Matching unit)) Not equal to Neutral Victim) and (((Unit-type of (Matching unit)) Not equal to Interceptor) an and do (Actions)
        • Loop - Actions
          • Unit - Change ownership of (Picked unit) to Neutral Victim and Retain color
          • Unit - Order (Picked unit) to Move To TEMP_PointFear2
      • Custom script: call RemoveLocation(udg_TEMP_PointFear)
      • Custom script: call RemoveLocation(udg_TEMP_PointFear2)
      • Player - Make (Owner of (Casting unit)) treat Neutral Victim as an Enemy
  • Fear2
    • Events
      • Unit - A unit Changes owner
    • Conditions
    • Actions
      • Wait 2.50 seconds
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Owner of (Triggering unit)) Equal to Neutral Victim
        • Then - Actions
          • Unit - Change ownership of (Triggering unit) to (Previous owner) and Retain color
          • Player - Make Player 1 (Red) treat Neutral Victim as an Neutral
          • Player - Make Player 2 (Blue) treat Neutral Victim as an Neutral
          • Player - Make Player 3 (Teal) treat Neutral Victim as an Neutral
          • Player - Make Player 4 (Purple) treat Neutral Victim as an Neutral
          • Player - Make Player 5 (Yellow) treat Neutral Victim as an Neutral
          • Player - Make Player 6 (Orange) treat Neutral Victim as an Neutral
          • Player - Make Player 7 (Green) treat Neutral Victim as an Neutral
          • Player - Make Player 8 (Pink) treat Neutral Victim as an Neutral
        • Else - Actions
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,258
, look I am not an expert on this. I thought fatal error through page faults is similar to some memory problem. Heck, first time I read about page faults.
Page faults are an action that occurs as part of virtual memory systems (like those used by modern operating systems). Virtual memory systems divide memory into areas called "pages" which are orientated around processes. A page fault occurs when a page is currently not allocated in memory. There are two kinds of page fault, soft page fault where a page still is in memory but is marked as being un-owned (how file caching works) and hard page faults which are when a page is currently on backing storage and not in memory.

Virtual memory exists to get around finite memory constraints on the basis of processes often allocating large amount of memory but only using a small working set.
 
Level 5
Joined
May 6, 2013
Messages
125
Bad luck, the crash log is unfortunately not a pretty clear one. Like, usually you just have to look into eip and can quickly see what the crashing function is doing (eg, eip = Game.dll+3BBB41 would be a wrong Player() call), but this one seems rather complicated. Like, i have no real plan what it's doing, and the by now, the only map i found that uses the same 2 calls from your stack dump (havn't looked much further yet) is angel arena allstars (1.69f to be precise) where it's constantly called when you look onto one of three spots on the map, and since that one is protected, i can not really see what those spots have in common. And honestly, what could constantly happen just because you LOOK onto those spots. Very confusing.
So year... i guess it's kind of hard to find. Like, if you have a huge complicated map, it's more likely that the function is called, but you are less likely to know why. And when you play a smaller map, it can be that the function is not called at all, which is not helping either.
I guess i could try to create a test map with every event and action that i can possibly call, but even then, who tells us that it's a trigger that is causing your error.
I'll try a little more later on, but don't make you all to many hopes, im not too certain that i will find something. Maybe someone with a little more programming skills (and maybe a bit more experience with wc3) might come along and help a little ;)
 
Level 17
Joined
Aug 19, 2007
Messages
1,380
Thanks guys for all the comments and time;

Page faults are an action that occurs as part of virtual memory systems (like those used by modern operating systems). Virtual memory systems divide memory into areas called "pages" which are orientated around processes. A page fault occurs when a page is currently not allocated in memory. There are two kinds of page fault, soft page fault where a page still is in memory but is marked as being un-owned (how file caching works) and hard page faults which are when a page is currently on backing storage and not in memory.

Virtual memory exists to get around finite memory constraints on the basis of processes often allocating large amount of memory but only using a small working set.
, thanks for the clarification

that trigger will work with the wait because triggering unit is actually a local variable.
in ur first trigger change casting unit to triggering unit. Always use triggering unit when u can. 1000 is a long distance to tell them to run. but i dont think a unit can run off the map.
, okay thanks for looking

Bad luck, the crash log is unfortunately not a pretty clear one. Like, usually you just have to look into eip and can quickly see what the crashing function is doing (eg, eip = Game.dll+3BBB41 would be a wrong Player() call), but this one seems rather complicated. Like, i have no real plan what it's doing, and the by now, the only map i found that uses the same 2 calls from your stack dump (havn't looked much further yet) is angel arena allstars (1.69f to be precise) where it's constantly called when you look onto one of three spots on the map, and since that one is protected, i can not really see what those spots have in common. And honestly, what could constantly happen just because you LOOK onto those spots. Very confusing.
So year... i guess it's kind of hard to find. Like, if you have a huge complicated map, it's more likely that the function is called, but you are less likely to know why. And when you play a smaller map, it can be that the function is not called at all, which is not helping either.
I guess i could try to create a test map with every event and action that i can possibly call, but even then, who tells us that it's a trigger that is causing your error.
I'll try a little more later on, but don't make you all to many hopes, im not too certain that i will find something. Maybe someone with a little more programming skills (and maybe a bit more experience with wc3) might come along and help a little ;)
, I can unprotect the map with XDEP, I do not support unprotecting generally so I can only PM it to you if you want (not upload it here). With the program I can restore most things and triggers are in one long trigger comment thing (is that good enough for fatal error testing?).

Anyway here is my buggy map too (ps: not my newest version of the map, but it is the one with with the 2 fatal errors and before mentioned triggers).
 

Attachments

  • (8) SH TEST The Hunters.w3x
    7.9 MB · Views: 45
Level 5
Joined
May 6, 2013
Messages
125
Mother of god, i can't believe i finally found it :eekani:

Well, i took your map and experimented around with cheat engine.

The crashing function is called whenever you see anything not beeing fogged. A basic drawing function probably.
The Function is called with the same stack size when you see a shadow of a unit in the water.
The game crashes with similar parameters and the same stack size when you watch such a shadow coming too near to the top or right edge of the map. I don't know for sure that it is exactly that error as the parameters differ depending on where the shadow is, but it's quite similar and reproducible. I assume one of your guys watched an albatross taking a dump in the water near their base or tried to launch a sneaky air attack.
As for how to fix this: who knows. Maybe remove the shadows of flying units or put a little black border around the map so you can't come that near to the borders.

Debugging a mod that you didnt make modding a program you didnt make using a debugger that is meant to be used to invent cheats. Seems surreal xD

edit: also, can it be that those undead ppl are a little bit op? They would have crushed me all the time if the ai wasn't too god damned stupid to deal with those phantoms
 
Level 17
Joined
Aug 19, 2007
Messages
1,380
@Imp Midna
give-that-man-a-medal.jpg


or tried to launch a sneaky air attack.
, yes he did exactly at the time of the crash.

As for how to fix this: who knows. Maybe remove the shadows of flying units or put a little black border around the map so you can't come that near to the borders.
, I am going add a black border around it, also cause now if you build one of protoss buildings at the bottom of the map you see it coming out of the ground xD (funny building animation)

This actually makes sence a bit. Cause it could be it has to do something with the second desktop pc. Cause before we played on laptops mostly or I played on my desktop pc, which both never gave fatal errors. So somekind of engine or driver combination fault (or whatever it is called) between that desktop pc and warcraft 3.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,258
Map edge crashes are one of the most common form of crash. Shadows follow the terrain contour (actually I think it is a separate layer which is built around the terrain contour as deformations do not effect it well). If it tries to place a shadow outside map bounds it does not clamp to within map bounds resulting in a logical error. The access violation could easily be the game trying to read mesh data (stored in an array) that is outside the map bounds.
 
^That's a very solid explanation as to why the crash occurs actually. Thank you for sharing.

If it happening in the top corner of the map, we know they're reading memory they shouldn't be. If you can represent the terrain heights with a matrix starting from the top left corner of the map and ending at the bottom right corner, then you can see how an array read beyond the top accesses memory it (likely) shouldn't be touching.

(The only assumption I made here is that they start from the top left corner. I think this assumption is correct because this is precisely how their height map file is inside the .w3x)

Now as for an array read from the left or right, if that can fail, we know they're doing the allocation somewhat like this:

C++:
// Pseudocode
unsigned int map_width = 256;
unsigned int map_height = 256;

int** height_map = new int*[map_width];
for (unsigned int i = 0; i < map_width; ++i) {
    height_map[i] = new int[map_height];
}

Can't be too sure though. Someone would have to test and see where this fails and what happens when you go out from the sides.
 
Level 5
Joined
May 6, 2013
Messages
125
Code:
Game.dll+7578B3 - 8D 0C C5 00000000     - lea ecx,[eax*8+00000000]
Game.dll+7578BA - 2B C8                 - sub ecx,eax
Game.dll+7578BC - 8D 04 8A              - lea eax,[edx+ecx*4]
(Game.dll+7578BF - 8D 4C 24 14           - lea ecx,[esp+14])
(Game.dll+7578C3 - 51                    - push ecx)
Game.dll+7578C4 - 50                    - push eax
(Game.dll+7578C5 - 8B CB                 - mov ecx,ebx)
Game.dll+7578C7 - E8 84AEFFFF           - call Game.dll+752750
(The lines in () are not accessing the matrix, the first and second one beeing some pointer to a local variable, the third one beeing the this pointer, obviously)
Obvious array is obvious.
However, theres something weird about it:

some test addresses:
Starting of both the page and the matrix: 0xE53FF00
Ending of the Matrix (i asume): 0xE5F1330
Ending of the page: 0xE5F1F00.

Info you need to understand: The matrix is built from bottom left to top right, saving row for row. Therefor, the high indices can primarily be found at the top edge.

So, we have a Matrix of the size 0xB1430 (~= 90.800 member, what kind of number is this anyways?) on allocated memory of the size 0xB2000. With such huge numbers, its obvious that the top edge can quickly cause access violation when exceeding the borders of this matrix.
However, this does not explain why the right edge also crashes the game. Here is where it gets funny: seemingly, blizzard did actually except this problem for the rows (though they didnt fix it...). When the row size is exceeded, they access this array at the imaginary index -1, resulting in the game trying to access the address just 8 bytes before the matrix starts; and for this very unlucky map, the array is enclosed by unallocated memory, resulting in an access violation, just in the other direction. I mean, they seemingly fixed this for the left border, why not for the right one?
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,258
The matrix is built from bottom left to top right, saving row for row. Therefor, the high indices can primarily be found at the top edge.
This is obvious by the way the .w3e file is structured (again, from bottom left to top right).

When the row size is exceeded, they access this array at the imaginary index -1, resulting in the game trying to access the address just 8 bytes before the matrix starts; and for this very unlucky map, the array is enclosed by unallocated memory, resulting in an access violation, just in the other direction. I mean, they seemingly fixed this for the left border, why not for the right one?
Lol that explains everything...

So basicly to prevent out of bounds errors, they access something... out of bounds. Computer Science at its best! Segmentation fault FTW.
 
Level 5
Joined
May 6, 2013
Messages
125
Why would they want to save a terrain-dependent (and therefor not dynamically enlarged) grid into a vector? More Importantly, how would they then be able to access it without calling the at- or operator[] function? It's not like malloc would be evil. Nothing bad about it.
 
Level 5
Joined
May 6, 2013
Messages
125
Depends on your definition of 'clean' i guess. I'd consider a "pointer to a huge block of memory" cleaner than a "pointer to a struct containing various counters and a pointer to the same huge block of memory which can only be accessed using functions". It just seems to add extra information you do not really need. Also, it misses the point of a vector if you don't use their primary feature to resize themselves.
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,258
It's a cleaner solution than having a pointer pointing to a huge block of memory.
Computers are I/O bound so the extra memory reads for a vector put a performance penalty. It is more efficient to do some basic mathematics to get a 2D index than it is to read nested pointers.

Caching does combat this to some degree, but it is unlikely that the top level vector is on the same page as the others which wastes potential cache space.
 
Depends on your definition of 'clean' i guess. I'd consider a "pointer to a huge block of memory" cleaner than a "pointer to a struct containing various counters and a pointer to the same huge block of memory which can only be accessed using functions". It just seems to add extra information you do not really need. Also, it misses the point of a vector if you don't use their primary feature to resize themselves.

You wouldn't use a pointer to a vector.
The former approach is more "C with classes"-esque.

It's a good practice to avoid malloc/realloc/free and new/delete in C++ whenever possible. Don't do memory management yourself. It complicates code. Throwing exceptions then becomes the equivalent of leaking memory and you'd have to clean it up on your own and remember to clean it up when refactoring or adding upon some code in the future (And yes, there are lots of cases in which an exception can be thrown during run-time and handled without being treated as a run-time error or anything that would force execution to halt, like while networking for example). While using the STL, you can write less code that does more. (No garbage cleaning all the time, no asterisk spam ;_; (Besides, even when you do need pointers, it's a smart move to use std::unique_ptr, std::shared_ptr or std::weak_ptr because those things manage your memory for you too.))

Relying on the principle of RAII allows you to be more productive and produce cleaner code and this is particularly important for most companies. If you're in a large company like Blizzard, you can't afford to end up with these kinds of errors before you're about to deploy the project. (Time Critical situations)

I'm all for low-level memory fiddling because I like this kind of shit, but in a firm like Blizzard, manual memory management is out of place.

Yes, a vector adds more information than needed, but there's a price for everything! :p

Like coffee. And cake. And coffee cake ;.;
 
Status
Not open for further replies.
Top