当前位置: 首页 > article >正文

【opencv】debug报错HEAP CORRUPTION DETECTED

运行至第一句涉及矩阵运算的代码(如cv::multiply)时报错
在这里插入图片描述

HEAP CORRUPTION DETECTED: after Normal block (#45034) at 0x000001BDC586F0E0.
CRT detected that the application wrote to memory after end of heap buffer.

release下不会报错,只有debug下会报错

版本:opencv 3.1.0 vc2013 x64

不管是官方编译的版本还是自己编译的版本,都会报错。进一步的,在自己编译的版本下看调用堆栈
在这里插入图片描述
一层层往上找:
std::allocator<>::deallocate,c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory0
std::vector<>::~vector,c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\vector
cv::ocl::selectOpenCLDevice,opencv\sources\modules\core\src\ocl.cpp
在这里插入图片描述
挂在了selectOpenCLDevice的返回时std::vector析构的地方,此处是找到tempStrDeviceType="gpu"类型的设备了,devices不为空,其类型为std::vector<cl_device_id> devices,其中struct _cl_device_id { int dummy; };
看到源码里有一句注释Use clReleaseDevice to cleanup,是不是opencl的设备没有显式释放导致的?

但把本机编译好的debug版本可执行文件放到另外一台机器上运行,一切正常,说明可能是跟机器相关。
本机(出问题的机器)配置是win11 + i5 13500HX + RTX 4050 laptop,正常运行的机器配置是win10 + i7 9700 + GTX 1660Ti

怀疑是opencv3.1.0的opencl代码太老旧在新设备上无法正常debug运行,是否是40系n卡的问题?(待验证)


http://www.kler.cn/news/136567.html

相关文章:

  • 打包方式-jar和war的区别
  • Python:背景知识及环境安装
  • RHCE-web篇
  • Windows里python报错:ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+
  • 【进阶OpenCV】 (19)-- Dlib库 --人脸表情识别
  • 【记录】VSCode|自用设置项
  • ChatGPT + DALL·E 3
  • 【Java】volatile-内存可见性问题
  • 云原生周刊:Istio 1.20.0 发布 | 2023.11.20
  • 图的基础知识(数据结构)
  • buildadmin+tp8表格操作(5)自定义组装搜索的查询
  • Linux驱动开发——块设备驱动
  • C语言编程陷阱 (九)
  • 深入解析序列模型:全面阐释 RNN、LSTM 与 Seq2Seq 的秘密
  • 用不用Microsoft Defender是你的自由,但不用最好也得有替代品
  • Java,集合框架,关于Collection接口(子接口List和Set)
  • Cloud 微服务
  • Redis篇---第十一篇
  • 2023年亚太杯数学建模亚太赛ABC题思路资料汇总贴
  • HttpClient发送MultipartFile多文件及多参数请求
  • 担忧CentOS停服?KeyarchOS系统来支撑
  • 大模型LLM 在线量化;GPTQ\AWQ量化及推理
  • Windows 安装 Docker
  • PostgreSQL数据库结合内网穿透实现公网远程连接
  • 2023年中职“网络安全“—Linux系统渗透提权③
  • 如何快速将txt类型的日志文件转换为excel表格并进行数据分析报表统计图(如:饼图、折线图、柱状图)?