zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    项目alpha冲刺-测试
    项目Alpha冲刺--9/10
    项目Alpha冲刺--8/10
    项目Alpha冲刺--7/10
    项目Beta冲刺(1/7)(追光的人)(2019.5.23)
    Beta之前-凡事预则立(校园帮-追光的人)
    事后诸葛亮(追光的人)
    问题回答
    Alpha冲刺总结
    Alpha冲刺(10/10)——追光的人
  • 原文地址:https://www.cnblogs.com/happyamyhope/p/7246617.html
Copyright © 2011-2022 走看看