首页 > 解决方案 > 解决无限分配错误

问题描述

我的应用程序适用于大多数输入,但一些输入文件使它在某个时候分配越来越多的内存,直到它被系统的 oom 杀手杀死。

该应用程序需要几个小时才能运行,因此当它的内存使用量开始突破时,照看它并手动中断它不是一种选择。

我尝试使用 valgrind 的地块运行应用程序,但由于它被系统杀死,它永远不会产生输出文件。

是否可以选择让 massif 立即将其快照写入磁盘?

当被 SIGINT 中断时,Massif 似乎确实为应用程序生成了一个输出文件,所以这可能会起作用。是否有另一种工具将 SIGINT 发送到消耗超过一定内存量的进程?

标签: c++linuxout-of-memorymassif

解决方案


推荐阅读