R6010 -abort() has been called错误分析及其解决方法
前言
调试代码的过程中经常会遇到R6010 -abort() has been called的错误,在此,分析一下该问题.
错误的表现形式:
导致出现这样的原因有:
1.非法指针访问和内存泄漏;
2.大家再查查吧,一定是指针出现问题了。设置的指针范围跟你运行的不对;
3.指针访问内存越界出现问题;
4.是因为不支持中文;
5.内存不够分配;
6.当时后来检查发现的问题应该是多线程访问资源出的问题;
7.检查一下exe和dll是否混用的不同版本的crt;
解决方法:
第一:检查申请的空间没有释放;
第二:检查堆栈空间是否已经被全部分配满,建议每次内存分配尽量不要太大,并且记得释放;
第三:指针指向了不可预期的内存位置;
针对我的问题,
发现在以下代码处出现错误:
features(temp, feature);
而这个函数的声明是:
extern void features(const Mat& image, Mat& features);
原因:
程序中已经声明定义了全局变量image,且有一小段运行过程中对image变量使用了互斥锁,多个线程会用到image变量,而出现问题的features函数中多次使用到image这个变量,所以出错;
解决方法:
将features函数中使用到image变量的地方,使用其他的变量名称即可;
还有一个原因是,
代码中的变量数据有问题,比如,函数输入应为彩色RGB图像,但是之前使用的灰度图像,忘记将灰度化部分去除,因此出现错误。
参考
1.http://www.2cto.com/kf/201503/382523.html
完
各美其美,美美与共,不和他人作比较,不对他人有期待,不批判他人,不钻牛角尖。
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
心正意诚,做自己该做的事情,做自己喜欢做的事情,安静做一枚有思想的技术媛。
版权声明,转载请注明出处:https://www.cnblogs.com/happyamyhope/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探