【发布时间】:2011-05-04 16:59:20
【问题描述】:
一段时间以来,我一直很高兴地将dlmalloc 用于跨平台项目(Windows、Mac OS X、Ubuntu)。然而,最近似乎使用 dlmalloc 会导致 Windows 7 上的退出崩溃。
为了确保它在我的项目中不是愚蠢的,我创建了一个超级最小的测试程序——它除了从 main 返回之外什么都不做。一个版本(“malloctest”)链接到 dlmalloc,而另一个版本(“regulartest”)没有。在 WinXP 上,两者都运行良好。在 Windows 7 上,malloctest 崩溃。您可以看到测试的截屏视频here。
我的问题是:为什么会这样?它是 dlmalloc 中的错误吗?还是 Windows 7 中的加载程序发生了变化?有解决办法吗?
fyi,这里是测试代码(test.cpp):
#include <stdio.h>
int main() {
return 0;
}
这里是nmake makefile:
all: regulartest.exe malloctest.exe
malloctest.exe: malloc.obj test.obj
link /out:$@ $**
regulartest.exe: test.obj
link /out:$@ $**
clean:
del *.exe *.obj
为简洁起见,我不会在这篇文章中包含 dlmalloc 源代码,但您可以获取它 (v2.8.4) here。
编辑:查看这些其他相关的 SO 帖子:
【问题讨论】:
标签: c windows windows-7 malloc