我目前正在清理现有的代码库,并遇到了一个涉及valgrind的问题,我想修复它,因为它会导致有用的信息丢失。 Valgrind被称为:
/usr/bin/valgrind --leak-check=full -v --log-file=./log/valgrind/valgrind-%p.log --trace-children=yes ./myapp arg1 arg2 >&! $logfile
有问题的程序是一台具有内置重启功能的服务器,该功能通过execl()
实现。
当服务器重新启动时,迄今为止在日志文件中收集的所有内容(./log/valgrind/valgrind-1234.log
)都将被清除:日志文件的顶部显示重新启动时传递的参数。之前的任何事物(观察到已经存在使用tail -f
)不再存在。
一方面,了解它是如何开始执行的新流程图像是有道理的。另一方面,我没有在之前的化身上运行valgrind,只是看到它的辛苦工作消失了!
有没有人知道如何让valgrind附加到自己的日志文件而不是将它们重新开始?如果可能的话,我想避免切换到valgrind的--log-socket
因为我不想运行另一台服务器:我现在正在打扫房子,增加复杂性与我们现在需要的完全相反。 :)
答案 0 :(得分:3)
您的问题的可能解决方案可能是让valgrind记录到指定的文件描述符,这样您就可以将其附加到日志文件中:
The syntax of the command is incorrect.