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

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

认识valgrind

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

分析工具:
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

posted @   IP大侠  阅读(541)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 分享4款.NET开源、免费、实用的商城系统
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
点击右上角即可分享
微信分享提示