【发布时间】:2009-04-20 14:19:23
【问题描述】:
我有一个带有调试和发布版本的 VS 2005 C++ 项目。我尝试了以下 4 件事:
- 通过 Visual Studio 构建一个 Debug 可执行文件,并通过 Visual Studio 运行它。
- 在
cd'ing 到vstudio/debug之后,通过命令行 (Cygwin) 在外部运行内置的可执行文件 (1)。 - 通过 Visual Studio 构建一个 Release 可执行文件,并通过 Visual Studio 运行它。
- 在
cd'ing 到vstudio/release之后,通过命令行 (Cygwin) 在外部运行 (3) 内置的可执行文件。
前3个都成功:程序运行完成。
然而,第四个在运行时崩溃。调试显示罪魁祸首是在运算符new() 中调用malloc()。相关上下文如下所示:
template<typename T> class Foo {
...
static void bar() {
...
T* ptr = new T();
...
}
...
}
如果有人能想到任何会导致我描述的四分之三症状的问题,我们将不胜感激。
【问题讨论】:
标签: visual-c++ debugging release new-operator