Android OpenCV Fatal Signal 11,(糟糕的编码实践?)
Android OpenCV Fatal Signal 11,(bad coding practices?)
关于OpenCV可怕的致命信号11的文档确实没有那么多。熟悉OpenCV的人能提供一个彻底的解释吗?在某些情况下,这似乎可能是由于"Android OpenCV绑定",但在我看来,我不确定这一定是真的。
通过反复调用日志,我已经缩小了我经常遇到致命信号11的确切点。它出现在一个巨大的for循环之前,如下所示。我假设这是一个内存问题,因为程序运行这个函数大约5-30秒,然后崩溃这个错误。我是一名自学成才的程序员,所以一般来说,如果某些东西有效,我会坚持下去,但这让我很难知道我的代码是有效的还是低效的。在这种特殊情况下,它似乎导致了c++代码中的错误,我不知道如何调试。
int cols = myimage.cols; int rows = myimage.rows;
for (int y = 0; y < cols; y++){
for (int x = 0; x < rows; x++){
//val1 = g4.at<float>(y, x);
//val2 = g5.at<float>(y, x);
if (g4.at<float>(y, x) >= minrad && g5.at<float>(y, x) >= minrad){
if (g4.at<float>(y, x) <= maxrad && g5.at<float>(y, x) <= maxrad){
if (((x + g4.at<float>(y, x)) <= rows) && (y + g5.at<float>(y, x) <= cols)){
mapped.at<float>(y + g5.at<float>(y, x) , y + g4.at<float>(y, x)) = mapped.at<float>(y + g5.at<float>(y, x), y + g4.at<float>(y, x)) + 1;
}
}
}
}
}
完整的错误消息显示在Eclipse中——是否有一种方法可以让我获得有关此错误的更多信息?几天前我尝试了adb logcat,但我不确定它给我的信息是否有用):
Fatal signal 11 (SIGSEGV) at 0x62bacfb4 (code=1), thread 24457 (Thread-475)
如果有人能留下评论解释这个错误信息的确切含义,那对我也有帮助。
11号信号是段故障。这意味着某些东西访问的内存不是由操作系统分配给程序的。考虑到它发生的地址,看起来像是有人越过了数组的边界,或者访问了一个从未初始化的指针。如果没有崩溃跟踪,就不可能找出更多。
相关文章:
- 如何确定我已使用非编码文件到达 EOF?
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 在卡萨布兰卡形成编码参数的列表
- 使用C++进行游程编码
- 如何将不同的可执行文件合并到一个窗口框架中进行编码?像浏览器一样
- 使用已使用 java 编码的 openssl 解码数据
- boost 是否有按特殊类型值编码状态"compact optional"?
- 如何在CPP的给定目录中列出UTF编码的文件名?
- 如何使用 C++将 ISO-2022-KR 编码转换为 UTF-8 编码?
- 绝对编码器十六进制输入
- 防止C++中的硬编码数字
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- 将C++ std::string 转换为 UTF-16-LE 编码的字符串
- 使用文件内容作为硬编码字符串
- 运行长度编码程序 c++ 的问题
- 以C++为单位进行运行长度编码
- *新的编码器*格式和运算符
- 在CRC-16 CCITT中将数据从二进制解码为文本,我应该输入一个码字,使用CRC生成器进行编码
- Android OpenCV Fatal Signal 11,(糟糕的编码实践?)