我目前正面临着我的团队正在处理的大型复杂项目中遇到的最恶毒的错误之一。我们使用C++作为编程语言,目前使用Visual Studio进行开发,尽管最终产品旨在运行跨平台。描述并发现导致看似随机崩溃的状态腐蚀问题
的错误:
有一个在我们的系统在执行看似随机点触发崩溃的错误。崩溃原因通常是每次执行程序时都会更改的地址读访问冲突。有时我们也会收到堆损坏错误。调用堆栈导致我们在代码库中发生变化,而很少发生到某些外部库(我们的例子中是Lua),这些错误显然不在此处。
看起来好像这个bug在过去4个月里一直在发展。这段时间之前,大致上,我的一些团队成员看到前端程序崩溃的方式和位置与现在发生的情况非常相似。
更多的细节:
我们的代码库是纯C的大约800K行++(注释除外)大,超过3年的课程开发。目前的项目重约30万。我们已经使用了过多的单元测试和其他方法来消除错误,例如断言,智能指针等。
其他人和我一直在试图找到这个bug超过2个星期了。这对我来说已经不仅仅是一场噩梦。在这样一个复杂的项目中,即使是旧的printf调试,在面对现在复杂的情况下似乎也会失败。
我的问题
在我们这里面临什么样的错误呢?甚至有这个名字吗?这种错误在其他大型项目中多多少少出现过?
在使用各种实用程序,在各种平台和各种构建设置上花费了2个星期的无果调试之后,我们可以如何找到并消除它?
(我以前的问题被关闭,所以我想有更多的细节更好,制定这个时候,链接:https://stackoverflow.com/questions/7154645/how-is-this-kind-of-bug-called)
阿尔夫,零星的臭虫是最糟糕的。学习使用调试工具的时间。 –