我编写了一个 C++ 应用程序,它会永远运行直到手动终止。
它监视其他重要的应用程序。因此,我的守护进程应用程序不应停机。
记住这一点,我想看看我的应用程序中是否存在内存泄漏。
我使用了 valgrind,但由于该应用程序永远运行,因此 valgrind 不会退出。如果我执行 control - C 那么我不会从 valgrind 日志文件中获得完整信息。
有没有一个工具可以完成 Valgrind 所做的事情?
我相信您可以将 gdb 连接到正在运行的 valgrind 进程,并指示它显式运行泄漏检查。
这个我没试过,只是在网上看到的docs http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.gdbserver.
如果链接损坏:
将 GDB 连接到 Valgrind gdbserver
$ valgrind --tool=memcheck --vgdb=yes --vgdb-error=0 ./prog
(error 参数是 gdbserver 激活之前的错误数:零表示它立即开始运行)。
然后在您的程序上启动 gdb 并连接到远程目标
$ gdb ./prog
(gdb) target remote | vgdb
并触发检查
(gdb) monitor leak_check full reachable any
有关完整详细信息,请参阅您的文档或链接的文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)