为什么HeapOverflow程序的大小为5MB?

时间:2009-09-23 13:25:36

标签: heap overflow

所以我问自己,如果我试图在Windows XP上进行堆溢出会发生什么,我很惊讶地看到,一旦程序“吃掉”所有的RAM(这顺便发生,顺便说一下),任务管理器中进程的大小降至5MB,之后不会移动。但是,计算机内存使用量仍在增长。

那么为什么Windows无法看到我的软件占用GB内存?我觉得它可能是一个安全问题,因为一旦软件吃掉所有内存,它就可以“隐藏”在小进程组中(也许我有点偏执)。

注意:当堆已满时没有任何反应,cpu只会跳到100%,因为一旦malloc失败,我的for(;;)循环会像疯了一样运行。

编辑:好的!从来不知道你可以调整任务管理器列。我今天学到了一些东西:D。

2 个答案:

答案 0 :(得分:0)

尝试打开任务管理器,然后转到查看>选择Columns ...然后在更多内存列上切换。可能是程序使用了更多的内存,但没有使用您在任务管理器中查看的类型

我认为在XP下可能会有一个您感兴趣的虚拟内存列

答案 1 :(得分:0)

有趣的实验..默认情况下,任务管理器显示默认工作集。还有其他内存字段,例如分页和非分页池和工作集。页面错误也可以告诉您程序正在尝试分配内存但是失败。