On Thu, 2019-06-20 at 11:04 +0530, 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.

You can search leaks with valgrind while your program is running.

Different techniques can be used for that:
  * Inside your code, you add calls to client requests
    such as VALGRIND_DO_LEAK_CHECK
  * From the shell, you can use 'vgdb' to launch
    a leak search using the monitor request 'leak check'
  * Using gdb+vgdb, you can also launch such a leak check.
    Compared to the previous techniques, the advantage is
    that you can just put breakpoints where you want, and
    launch leak searches when a breakpoints is reached.
    You can also explore the 'logical leaks' (increase of
    memory due to still reachable memory) using the monitor
    request 'who_points_at'.

Note that these leak searches can show a 'delta leak' report,
i.e. pinpoint at the new allocations since the previous leak
search.

See user manual for more details, e.g.
http://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.monitor-commands
and 
http://www.valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver

Philippe

     


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

Reply via email to