Opened 12 years ago

Last modified 8 years ago

#1619 new defect

Big screenshot fails on win32 (Out of address space) — at Initial Version

Reported by: historic_bruno Owned by:
Priority: Should Have Milestone: Backlog
Component: Core engine Keywords:
Cc: Patch:

Description

Able to reproduce this on Windows 7 64-bit, of course using a 32-bit build of the game. Big screenshots (Shift+F2) work for me at the start of games, but later on in the game it fails with this error:

Allocation failed: base=00000000 allocBase=00000000 allocProt=0 size=65536 state=65536 prot=1 type=0
AllocateLargeOrSmallPages of 371195904 failed
wvm.cpp(297): Out of address space (64-bit OS may help)


>	pyrogenesis.exe!PerformErrorReaction(ErrorReactionInternal er=255, unsigned int flags=0, volatile int * suppress=0x00000000)  Line 421	C++
 	pyrogenesis.exe!debug_DisplayError(const wchar_t * description=0x325be828, unsigned int flags=0, void * context=0x0074ef80, const wchar_t * lastFuncToSkip=0x00353acc, const wchar_t * pathname=0x00377aa0, int line=297, const char * func=0x00377d2c, volatile int * suppress=0x00000000)  Line 478 + 0xc bytes	C++
 	pyrogenesis.exe!vm::ReserveAddressSpace(unsigned int size=368902144, unsigned int commitSize=2097152, vm::PageType pageType=kDefault, int prot=3)  Line 389 + 0x100 bytes	C++
 	pyrogenesis.exe!da_alloc(DynArray * da=0x0074f840, unsigned int max_size=368902144)  Line 66 + 0x1b bytes	C++
 	pyrogenesis.exe!tex_encode(Tex * t=0x0074f8ac, const Path & extension={...}, DynArray * da=0x0074f840)  Line 761 + 0x11 bytes	C++
 	pyrogenesis.exe!tex_write(Tex * t=0x0074f8ac, const Path & filename={...})  Line 176 + 0x1d bytes	C++
 	pyrogenesis.exe!WriteBigScreenshot(const Path & extension={...}, int tiles=10)  Line 372 + 0x10 bytes	C++
 	pyrogenesis.exe!MainInputHandler(const SDL_Event_ * ev=0x0074fac8)  Line 151 + 0x1c bytes	C++
 	pyrogenesis.exe!in_dispatch_event(const SDL_Event_ * ev=0x0074fac8)  Line 60 + 0xa bytes	C++
 	pyrogenesis.exe!PumpEvents()  Line 193	C++
 	pyrogenesis.exe!Frame()  Line 356	C++
 	pyrogenesis.exe!RunGameOrAtlas(int argc=1, const char * * argv=0x00000002)  Line 507 + 0x5 bytes	C++
 	pyrogenesis.exe!main(int argc=1, char * * argv=0x00967a50)  Line 550 + 0xc bytes	C++
 	pyrogenesis.exe!wmain(int argc=1, wchar_t * * argv=0x02497b70)  Line 380 + 0xa bytes	C++
 	pyrogenesis.exe!__tmainCRTStartup()  Line 552 + 0x17 bytes	C
 	pyrogenesis.exe!CallStartupWithinTryBlock()  Line 397	C++
 	kernel32.dll!@BaseThreadInitThunk@12()  + 0x12 bytes	
 	ntdll.dll!___RtlUserThreadStart@8()  + 0x27 bytes	
 	ntdll.dll!__RtlUserThreadStart@8()  + 0x1b bytes	

The easy way to reproduce it (IMO) is playing a large map with AIs, set the simulation rate to 8.0 or so, and wait a while until the crash occurs when taking a big screenshot.

Change History (0)

Note: See TracTickets for help on using tickets.