如何在C ++中检查内存损坏

时间:2012-04-02 17:05:24

标签: c++ memory-corruption

我的项目有问题。有时执行失败,错误“无法访问读/写位置xxxxx”。 我知道这是一个内存损坏错误。但是我如何追踪该错误。它在内存释放变量时失败,如果我评论该行它处理正常。也就是说,这个变量的内存已经被释放了。早些时候它工作正常,我最近添加了代码,但我没有改变任何与此相关的事情。如何检查内存损坏。

3 个答案:

答案 0 :(得分:7)

如果您使用的话,请使用valgrind,如果您踩踏内存,它会准确显示正在发生的事情。

在Windows上:see here

答案 1 :(得分:0)

根据提供的信息,您必须单步执行最近添加的所有代码(如果这是最近的问题)并评估并检查每一行,看看您是否在踩踏内存。 memcopy是一个命令,如果您为要复制的项目的大小分配很多,则会导致此类错误。

确保您只删除一次对象(指针)。

答案 2 :(得分:0)

如果您使用的是Windows,请尝试使用winDbg。它是最好的,也是非常强大的。