我在嵌入式Linux中运行自己的c ++程序。起初VSZ为~6000kB(上),但1h后VSZ增加~100kB。在程序中有两个线程。这两个线程几乎一直都采用tcp和ssl连接。 我用depgrind在depian linux中运行了相同的程序。 Valgrind没有发现任何错误。我没有找到如何将valgrind编译到嵌入式linux的方法。 是否有可能valgrind找不到线程中的所有错误?你能以某种方式帮助我吗?
答案 0 :(得分:1)
你不应该仅仅因为VSZ在一段时间后增加而得出你的程序“泄漏记忆”的结论。这是正常的,特别是程序正在接受网络连接。我重申了这一点:
1 - 如果您使用的是busybox的“top”,请安装procps并使用其“top”。它提供了有关内存状态的更好信息。
2 - 监控每个线程使用的堆栈。 satck会随着时间的推移而增长,并会反映在VSZ中。