Hi, When modifying the linker script to adjust the location of RAM, it is easy to forget to change the size of the heap in the eCos memory layout file. This value is being passed to the memory allocator. If the size if negative, the dlmalloc doesn't complain. The attached patch checks the size on an assert.
Regards, Edgar -- Edgar Grimberg System Developer Zylin AS ZY1000 JTAG Debugger http://www.zylin.com/zy1000.html Phone: (+47) 51 63 25 00
# HG changeset patch # User Edgar Grimberg <[email protected]> # Date 1276596038 -7200 # Node ID 831d5e603f1f9037db95bbf0362cfd224eb2e170 # Parent eb303059b6e55fe739866837ef0e6c970873b45e Add an assert to check for invalid size of the arena. diff -r eb303059b6e5 -r 831d5e603f1f packages/services/memalloc/common/current/ChangeLog --- a/packages/services/memalloc/common/current/ChangeLog Thu Jun 10 20:46:18 2010 +0000 +++ b/packages/services/memalloc/common/current/ChangeLog Tue Jun 15 12:00:38 2010 +0200 @@ -1,3 +1,8 @@ +2010-06-15 Edgar Grimberg <[email protected]> + + * src/dlmalloc.cxx Cyg_Mempool_dlmalloc_Implementation: + Add an assert to check for invalid size of the arena. + 2009-09-01 Bart Veer <[email protected]> * src/heapgen.tcl (tcl_path): use the makefile's HOST instead of diff -r eb303059b6e5 -r 831d5e603f1f packages/services/memalloc/common/current/src/dlmalloc.cxx --- a/packages/services/memalloc/common/current/src/dlmalloc.cxx Thu Jun 10 20:46:18 2010 +0000 +++ b/packages/services/memalloc/common/current/src/dlmalloc.cxx Tue Jun 15 12:00:38 2010 +0200 @@ -948,6 +948,8 @@ cyg_uint8 *base, cyg_int32 size, CYG_ADDRWORD /* argthru */ ) { + CYG_ASSERT(size > 0, "Invalid arena size." ); + arenabase = base; arenasize = size;
