David Chapman wrote:
> On 6/19/2019 10:34 PM, subhasish Karmakar wrote:
>> Hi,
>>
>> I have an application running on embedded linux.
>> After running for hours my application causes out of memory issue.
>> How can I get memory leak report periodically when the application is 
>> running?
>> It's a process with "while(1)" loop.

If your only problem is memory leaks and no other concerns (such as out of 
bounds
accesses, corruptions, etc.) then you should give https://github.com/hyc/mleak/
a try. It is faster than all other memory leak detectors out there, fast enough
to run in production. And you can send it a periodic signal to get a snapshot
of currently allocated memory.

>>
>> Regards,
>> Subhasish
>>
> 
> Valgrind reports leaks when the program exits.  Because leaks are more than 
> just memory that your program no longer references, there isn't a good way to 
> report
> leaks before your program exits.
> 
> Your best bet is to build a version of your program that exits sooner, then 
> run your embedded system until the program exits (vs. runs out of memory).  
> Unless
> your code leaks memory in very unusual circumstances, running it under 
> valgrind for a few minutes should give you a lot of clues.  Figure out how 
> many times the
> "while (1)" infinite loop iterates before the crash, divide that number by 
> 100 or 1000, then replace the infinite loop with a "for (i = 0; i < count; 
> ++i)" loop.
> 
> Remember, your program will run slower under valgrind, so if your embedded 
> system has strict real-time constraints it might not work properly.
> 


-- 
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/


_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to