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://blog.csdn.net/luojiaoqq/article/details/50785950?locationNum=6&fps=1
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 分享4款.NET开源、免费、实用的商城系统
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库