我目前面临的是我在团队正在开展的一个大型复杂项目中遇到过的最邪恶的错误之一.我们使用C++作为编程语言,目前使用Visual Studio进行开发,尽管最终产品旨在跨平台运行.
错误:
我们的系统中存在一个错误,它会在看似随机的执行点触发崩溃.崩溃原因通常是对每次执行程序时更改的地址的读取访问冲突.有时我们也会遇到堆损坏错误.调用堆栈引导我们在代码库中使用变量点,并且很少使用一些外部库(在我们的例子中为Lua),其中错误显然不存在.
好像这个bug在过去4个月里一直在发展.大概一段时间以前,我的一些团队成员看到前端程序在方式和位置上的崩溃与现在发生的情况非常相似.
更多细节:
我们的代码库大约有800K行的纯C++(评论除外)很大,并且是在3年的时间里开发的.目前的项目重约300K.我们使用了过多的单元测试和其他方法来消除错误,如断言,智能指针等.
其他人和我一直试图找到这个错误超过2周.对我来说,这不仅仅是一场噩梦.在这样一个复杂的项目中,即使是好的旧版printf调试也似乎在现在的复杂性方面失败了.
我的问题
我们在这面面有什么样的错误?有没有这个名字?这种错误是否会在其他大型项目中或多或少地发生?
在使用各种实用程序,各种平台和各种构建设置进行了2周的无果力调试后,我们可以做些什么来找到并消除它?
(我之前的问题已经结束,所以我这次试图更好地制定它并提供更多细节,链接:https://stackoverflow.com/questions/7154645/how-is-this-kind-of-bug-called)