这里我遇到了一个类似于“薛定谔的猫”的问题——我的程序(实际上是我的程序的测试套件,但不管怎样是一个程序)崩溃了,但只有在发布模式下内置时才会崩溃,而且只有在从命令行启动时才会崩溃。通过穴居人调试(例如,到处都是讨厌的 printf ()消息) ,我已经确定了代码崩溃的测试方法,尽管不幸的是,实际的崩溃似乎发生在某些析构函数中,因为我看到的最后一条跟踪消息是在其他执行干净的析构函数中。
当我尝试在 VisualStudio 中运行这个程序时,它不会崩溃。从 WinDbg.exe 启动时也是如此。只有从命令行启动时才会发生崩溃。这是在 WindowsVista 下发生的,顺便说一下,不幸的是,我现在没有使用 XP 机器进行测试。
如果我能让 Windows 打印出堆栈跟踪或者 什么的,而不是简单地终止程序,就好像程序已经干净利落地退出了,那就太好了。有没有人对我如何在这里获得更多有意义的信息并希望修复这个 bug 有什么建议?
编辑: 这个问题确实是由界外数组 我将在这篇文章中详细描述引起的。感谢大家帮助我们找到这个问题!