Hello! I have a network project for c6678. System heap is located in L2SRAM, so there is not much memory for allocation and memory leaks are detected instantly.
So, I create a daemon for socket servicing on network start and it works fine for first 7-8 runs and then on 9-th connect to the port when NDK tries to create daemon I get the 'could not alloc' message. I included mmCheck before return from daemon function so I see memory map before removing daemon. As I can judge there is a memory leak connected with not complete cleanup after daemon termination.
Is it a bug of NDK?
Can I do something else to investigate the reason of this issue?
Run #1 17:48 ( 26%) 20:96 ( 62%) 1:128 ( 4%) 5:256 ( 41%) 1:512 ( 16%) 0:1536 0:3072 (15360/49152 mmAlloc: 87/0/43, mmBulk: 3/0/1) 1 blocks alloced in 512 byte page 17 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 20 blocks alloced in 96 byte page 5 blocks alloced in 256 byte page Run #2 17:48 ( 26%) 20:96 ( 62%) 1:128 ( 4%) 6:256 ( 50%) 1:512 ( 16%) 0:1536 0:3072 (15360/49152 mmAlloc: 108/0/64, mmBulk: 4/0/2) 1 blocks alloced in 512 byte page 16 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 20 blocks alloced in 96 byte page 6 blocks alloced in 256 byte page Run #3 18:48 ( 28%) 20:96 ( 62%) 1:128 ( 4%) 8:256 ( 66%) 1:512 ( 16%) 0:1536 0:3072 (15360/49152 mmAlloc: 114/0/66, mmBulk: 5/0/2) 1 blocks alloced in 512 byte page 18 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 20 blocks alloced in 96 byte page 8 blocks alloced in 256 byte page Run #4 20:48 ( 31%) 20:96 ( 62%) 1:128 ( 4%) 10:256 ( 83%) 1:512 ( 16%) 0:1536 0:3072 (15360/49152 mmAlloc: 120/0/68, mmBulk: 6/0/2) 1 blocks alloced in 512 byte page 20 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 20 blocks alloced in 96 byte page 10 blocks alloced in 256 byte page Run #5 22:48 ( 34%) 20:96 ( 62%) 1:128 ( 4%) 12:256 (100%) 1:512 ( 16%) 0:1536 0:3072 (15360/49152 mmAlloc: 126/0/74, mmBulk: 7/0/2) 1 blocks alloced in 512 byte page 22 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 16 blocks alloced in 96 byte page 12 blocks alloced in 256 byte page Run #6 24:48 ( 37%) 20:96 ( 62%) 1:128 ( 4%) 14:256 ( 58%) 1:512 ( 16%) 0:1536 0:3072 (18432/49152 mmAlloc: 136/0/80, mmBulk: 8/0/2) 1 blocks alloced in 512 byte page 24 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 16 blocks alloced in 96 byte page 12 blocks alloced in 256 byte page 2 blocks alloced in 256 byte page Run #7 26:48 ( 40%) 20:96 ( 62%) 1:128 ( 4%) 16:256 ( 66%) 1:512 ( 16%) 0:1536 0:3072 (18432/49152 mmAlloc: 142/0/82, mmBulk: 9/0/2) 1 blocks alloced in 512 byte page 26 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 16 blocks alloced in 96 byte page 12 blocks alloced in 256 byte page 4 blocks alloced in 256 byte page Run #8 28:48 ( 43%) 20:96 ( 62%) 1:128 ( 4%) 18:256 ( 75%) 1:512 ( 16%) 0:1536 0:3072 (18432/49152 mmAlloc: 148/0/84, mmBulk: 10/0/2) 1 blocks alloced in 512 byte page 28 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 16 blocks alloced in 96 byte page 12 blocks alloced in 256 byte page 6 blocks alloced in 256 byte page Run #9 30:48 ( 46%) 20:96 ( 62%) 1:128 ( 4%) 20:256 ( 83%) 1:512 ( 16%) 0:1536 0:3072 (18432/49152 mmAlloc: 154/0/86, mmBulk: 11/0/2) 1 blocks alloced in 512 byte page 30 blocks alloced in 48 byte page 1 blocks alloced in 128 byte page 16 blocks alloced in 96 byte page 12 blocks alloced in 256 byte page 8 blocks alloced in 256 byte page ti.sysbios.heaps.HeapMem: line 307: out of memory: handle=0x87b9b0, size=8200 <-.fardata:ti_sysbios_heaps_HeapMem_Object__table__V 00242.886 mmBulkAlloc(): could not allocate memory. 00242.887 out of memory: handle=0x800c05bc, size=0 <- ti_ndk_config_Global_pHdrMem @ 800bc480 in .far:NDK_PACKETMEM 00242.888 SBNew: Buffer OOM