EOutOfMemory during process initialization in Win 11

I have an app that a user claims crashes after upgrading to Windows 11
From MaxExcept the exception class is EOutOfMemory

The trace is ‘simply’
main thread ($3f50):
00405d33 +00f WORKSHOP4.exe System 30 +0 TObject.NewInstance
0057bf83 +04f WORKSHOP4.exe Forms TApplication.CreateForm
00cf251c +210 WORKSHOP4.exe WORKSHOP4 90 +40 initialization
75e47ba7 +017 KERNEL32.DLL BaseThreadInitThunk

Since the app works fine in Win 11 everywhere else, and it’s memory usage is way below the 2394MB MaxExcept says is physically free, I have to think there is some Win 11 setting somewhere that I need to have a look at.

The calls to TObject.NewInstance seem to be all small, with most being a few 10s of bytes with the occasional couple of KB, of course there are zillions of them so I haven’t been able to check them all to find the largest before the main form comes up.

Anyone seen this or got any ideas as to how to debug?

Do you compile your application with Debug DCUs? If not, maybe give the customer such a compiled version and see if you get a better stack trace?

Sent debug DCU version, but user had subsequently ‘solved’ the issue by upgrading Win 11 from 22H2 to 24H2. Fun.

1 Like