我有一个C程序,即使从外部库也包含许多内存分配,我想定期检查我的应用程序分配的内存总量(包括库分配)。
我尝试了一些linux命令,例如ps euf
,pmap $pid
,cat /proc/$pid/status
,但没有任何实际结果。
我做了一些研究,并找到了与valgrind合适的工具。
我试图在我的应用程序运行时转储内存:
valgrind --tool=drd --trace-alloc=yes
但是我没有得到像valgrind在执行结束时显示的结果。
如何在我的应用程序运行时使valgrind显示内存状态(就像执行结束时valgrind显示的结果一样)?
答案 0 :(得分:1)
根据3.8.0 valgrind manual,核心或memcheck没有这样的选项,也没有提到信号部分中的周期性或触发行为。 valgrind
无法开箱即用。
虽然您可能会编写一个valgrind工具来完成这项工作,但您可能会重新思考该方法并阐明您想要的内存使用情况,以及系统统计信息是否足以完成您的任务。