Currently, I am facing one of the most evil mistakes that I have ever encountered in a large, complex project that my team is working on. We use C ++ as a programming language, and currently Visual Studio for development, although the final product is designed to run cross-platform.
Error:
There is an error in our system that causes failures at seemingly random execution points. Typically, the cause of the failure is read access violation, which changes every time the program runs. Sometimes we also get heap error errors. Columns of calls lead us to variable points in our code base, and rarely to some external libraries (Lua in our case), where the error clearly does not lie.
This error seems to have developed over the past 4 months. Some time ago, approximately, some of my team members saw the crash of the interface program in manners and places very similar to what is happening now.
Additional Information:
Our code base is approximately 800 thousand lines of pure C ++ (comments are excluded) large, and was developed over 3 years. The current project weighs about 300 thousand. We used excessive unit testing and other ways to eliminate errors before they occur, such as statements, smart pointers, etc. Before.
Others and I tried to find this error for more than 2 weeks. For me, this is not just a nightmare. In such a complex project, even the good old printf debugging seems to fail in the face of the complexity that they currently have.
My questions
( , , : https://stackoverflow.com/questions/7154645/how-is-this-kind-of-bug-called)