硬件故障(例如RAM损坏)在C++程序中是否表现为非理性但一致的行为?C++和可能的硬件故障
今天笔者从一个程序我一直在努力,在过去一年左右的时间见证了很奇怪的行为。它是用C++编写的,我使用的是Visual Studio 2010.有两个莫名其妙的行为。
第一个涉及特定类的构造函数。在我做了一些代码更改(其他地方,不在构造函数中)并重建项目之后,内存尖峰化并最终冻结了我的操作系统(类似于一年前我曾经有过的problem,这是由于优化,但是这次优化被禁用) 。经过调试,我意识到断点在构造函数中是不可访问的,这意味着没有代码被生成。如果我在代码中的其他地方的结构中添加了几个成员变量,构造函数再次神奇地工作。
第二个实例涉及一个方法的调用方法B和传递的参数。调试时,传递给B的变量在传递给B之前是有效的字符串。一旦在B处,参数为空。系统重新启动使事情再次正常工作。
这让我觉得有可能是我的RAM一个问题 - 重启后,该方案将在可能的内存不同部分运行,所以不会有问题。我工作的机器过去经历过几次蓝屏,但并不经常。 Windows内存诊断工具的运行没有发现问题,但我仍然怀疑。
这很容易,当你不知道为什么事情发生归咎于环境,但我确实之前从来没有见过这样的事。我只想问一下,如果硬件故障影响到这样的程序,是否会有意义。
代码在不同的硬件上运行良好吗? – juanchopanza
@juancopanza你打我:) –
听起来很粗略。您的应用程序是否有可能指向随机垃圾的未初始化数据? – OldProgrammer