我有这个相对较大的数字应用程序代码,可能会运行几天并最终吐出一些数字。整个东西是用 C++ 编写的,利用了一堆 3rd-party 库,并使用 GCC 4.6 编译。该代码始终使用共享指针。
不幸的是,随着时间的推移,代码的内存消耗会增加,直到所有(共享)内存都用完,然后崩溃。从算法上讲,代码不应该随着时间的推移积累内存,所以某处会出现错误。
我确实通过 valgrind 的泄漏检查器运行了一个小例子,它报告一切都应该没问题。我的想法是共享指针可能会在某个地方无意中创建,从而防止在过程中释放不需要的数据(但这只是一个猜测)。
在一天结束的时候,我已经没有想法如何调试这样的东西了。有任何想法吗?