valgrind软件调试后台一直执行的程序的一点经验

发布时间:2022-03-14 17:17:33 浏览数:72

valgrind软件调试后台一直执行的程序的一点经验

认识valgrind

今天知道了valgrind这个软件,感觉还挺有用的,虽然不能用于生产环境,因为对性能有一些损失,但是测试的时候很有用。 大概查了一下,原理应该是用valgrind这个软件来运行我们自己的程序, 然后再结束的时候,valgrind会生成一些callgrind.out.<PID>的文件,这些文件里面记录了程序的调用栈, 如果程序挂了找不到原因的话,可以把生成的文件放到分析工具里面进行分析

分析工具: kcachegrind(windows下)
qcachegrind(mac下)

安装好valgrint之后,可以执行命令把我们自己的程序使用上valgrind valgrind --tool=callgrind target/debug/<name of your binary> <any args to said binary>

使用方法和介绍网上有很多,这里就介绍写我的经验,那就是需要实现在后台不停的执行监控程序的这个需求

后台执行监控程序

因为我的程序是需要读取可执行程序同级目录下的一些配置文件的,且需要24小时监控,所以不能使用【执行命令->退出程序】这种方式。

而我原本的程序里面是用systemd来运行的,这里说一下我的思路:

本来想把valgrind的命令放到systemd里面的,但是执行的时候发现程序需要读取同级目录下的配置, 所以如果把配置文件复制到/etc/systemd/system下面的方法就太蠢了, 看了第二个参考资料之后,发现还有一种方法,就是写个sh文件, 在sh里面把命令写好(cd到程序目录再执行), 然后systemd里面把这个sh文件执行一下就好了

参考资料:

https://qq52o.me/2745.html

https://blog.csdn.net/luojiaoqq/article/details/50785950?locationNum=6&fps=1