大佬教程收集整理的这篇文章主要介绍了c – 仅在调试器外的释放模式下程序崩溃,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
删除的行导致崩溃:
bool Save(const short* data,unsigned int width,unsigned int height,const wString* implicit_path,const wString* name = NULL,bool enable_overlay = falsE) { char* buf = new char[17]; delete [] buf; }
编辑:根据要求扩大了例子.
在我的测试用例中,“len”的长度为16.没关系,如果我用buf做一些事情,它会在删除时崩溃.
编辑:应用程序工作正常没有删除[]行,但我认为它泄漏内存然后(因为块从未被分配). buf从来没有使用过删除行.它也似乎不会崩溃与任何其他类型比char.现在我真的很困惑
崩溃消息非常特别(典型的Windows“xyz.exe已停止工作”).当我点击“调试程序”选项时,它进入VS,其中错误被指定为“访问冲突写入位置xxxxxxxx”.它无法通过“没有符号加载任何堆栈帧”找到错误的位置.
我想这是一个非常严重的堆损坏的情况,但是如何调试这个?我应该找什么?
感谢帮助.
以上是大佬教程为你收集整理的c – 仅在调试器外的释放模式下程序崩溃全部内容,希望文章能够帮你解决c – 仅在调试器外的释放模式下程序崩溃所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。