我的应用程序运行 2 天后不断收到此错误。
有人告诉我这是某种缓冲区溢出,但这是唯一的选择吗?
该应用程序是使用 Visual C++ 6.0 用 C++ 编写的。
在调试中,当您通过以下方式获取动态缓冲区时new
,在缓冲区之前和之后插入特殊代码来保护缓冲区。
Ex:
<Guard>=====buffer allocated on heap of required size=======<Guard>
如果缓冲区溢出,插入的保护会被损坏,并且当您尝试删除缓冲区时,调试器将在检测到缓冲区溢出后断言。
在大型代码库中找到缓冲区溢出有点困难。我建议采用几种方法来帮助您检测这种情况:
- 使用类似的工具理性净化 http://www-01.ibm.com/software/awdtools/purify/:
它是检测内存损坏的好工具。
- 通过 Windbg 和 GFlags 进行调试
启用:
参考我的answer https://stackoverflow.com/questions/781821/debug-visual-c-memory-allocation-problems/782085#782085到这里类似的问题
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)