Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Core » How to respond when memory is exceeded
Re: How to respond when memory is exceeded [message #61100 is a reply to message #61099] Mon, 18 November 2024 10:09 Go to previous messageGo to previous message
koldo is currently offline  koldo
Messages: 3443
Registered: August 2008
Senior Veteran
Hello Mirek

This is a very simple test code to force the problem:
GUI_APP_MAIN
{
	WithMain<TopWindow> dlg;
	
	CtrlLayout(dlg, "Memory test");
	
	dlg.butTest.WhenAction = []{
		try {
			Buffer<int> data;
			data.Alloc(123456789012, 0);
			
			PromptOK("Memory is alloc");
		} catch (const std::bad_alloc& e) {
        		Exclamation("Caught bad_alloc");
		}
	};
	
	dlg.Execute();
}

index.php?t=getfile&id=7003&private=0

And this is the change in U++:
void OutOfMemoryPanic(size_t size)
{
	throw std::bad_alloc();
	
	/*char h[200];
	snprintf(h, 200, "Out of memory!\nU++ allocated memory: %d KB", MemoryUsedKb());
	Panic(h);*/
}

When pushing the button 5 times, no problem happens. Visually monitoring the Windows Task Manager, MemoryTest.exe seems to use the same memory all the time.
However, pushing the button one more time, MemoryLimitKb breached! Panic appears. It happens the same in debug and in release.


Best regards
IƱaki
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: NoMemoryLeaksCheck undefined symbol
Next Topic: Doubt with Buffer<> of a trivially destructible type
Goto Forum:
  


Current Time: Tue Aug 26 14:23:06 CEST 2025

Total time taken to generate the page: 0.07644 seconds