我有一个VS 2005 C++项目,包括调试和发布版本。我尝试了以下四种方法:
vstudio/debug.
cd'ing后通过命令行(Cygwin)在外部运行内置的可执行文件(Cygwin),通过Visual发布可执行文件,并通过Visual运行。
cd'ing到cd‘之后通过命令行(Cygwin)从外部运行内置的可执行文件(3)。前三个都成功了:程序运行到完成。
然而,第四个在运行时崩溃。调试表明,罪魁祸首是在操作符new()中调用new()。相关的上下文如下所示:
template<typename T> class Foo {
...
static void bar() {
...
T* ptr = new T();
...
}
...
}如果有人能想到任何会导致我描述的3/4症状的问题,那将是非常感谢的。
发布于 2009-04-20 14:27:27
你可能有一堆腐朽的东西。这可能是由于指针在分配的内存之外写入造成的。
在调试模式中没有发生这种情况的一个可能原因是,您只覆盖堆上的调试信息(在发布模式中不存在)。
我不了解您的环境,但是您可能应该使用像BoundsChecker这样的工具来查找bug。
https://stackoverflow.com/questions/768471
复制相似问题