如何在C++中检查内存损坏
how to check memory corruption in C++
我的项目中有一个问题。有时执行失败,错误为"无法访问读/写位置xxxxx"。我知道这是内存损坏错误。但是我该如何追踪那个错误呢。它在变量的内存释放时失败了,如果我评论这一行,它处理得很好。也就是说,这个变量的内存已经被释放了。早些时候它运行得很好,我最近添加了代码,但我没有更改任何与此相关的内容。我该如何检查这个的内存损坏。
如果你在linux下,使用valgrind,它会向你显示如果你践踏内存会发生什么。
关于窗户:请看这里。
根据给定的信息,您必须逐步查看最近添加的所有代码(如果这是最近的问题),并评估和检查每一行,看看您是否在占用内存。memcopy
是一个命令,如果您为要复制的项目的大小分配了太多,它可能会导致这种类型的错误。
确保您只删除对象(指针)一次。
如果您使用的是windows,请尝试winDbg。它是最好的,非常强大。
相关文章:
- 检查nullptr是否100%保护内存布局不受segfault影响
- 使用 valgrind 检查我的链表暗示中的内存泄漏,让我"肯定丢失:1 个块中有 40 个字节"
- 如何使用 Malloc 调试来检查本机内存泄漏?
- 如何在c/c++中检查两个任意内存范围是否重叠
- 投射空指针以检查内存对齐情况
- 有没有办法检查内存缓存是否已重新启动?
- 检查内存是否在堆上
- 检查内存泄漏问题
- 检查内存泄漏
- c++:执行动态分配的新运算符检查内存安全性
- 检查内存泄漏
- 我可以检查内存块(例如,使用 malloc 分配)是否保留在缓存中吗?
- 如何在C++中检查内存损坏
- 二进制搜索树(如何在插入时检查内存是否不足)
- 使用boost日志,Valgrind检查内存泄漏
- 如何检查内存分配是否仍然有效
- 检查内存值
- 如何检查内存块中的所有字节是否为零
- 如何使用new操作符检查内存分配失败
- 免费应用程序检查内存泄漏在Windows x64