我有一个 OpenCV 应用程序,带有额外的 CUDA( .cu ) 文件,我想使用Parallel NSight进行调试。NSight 调试适用于 CUDA 示例(没有 OpenCV .cpp文件),但是当我尝试在我的应用程序中启动调试器时,调试器会加载许多附加模块(“未加载符号”)并因以下错误而崩溃:
OpenCV Error: Gpu API call (out of memory) in unknown function, file ..\.\
opencv-2.4.4\modules\core\src\gpumat.cpp, line 1415
此外,还会打开一个窗口:“Microsoft Visual c++ 调试库”,其中包含:“调试错误!” 和“已调用 R6010 中止”。
可能是什么问题?可以避免加载此模块吗?我不确定它们是否必要。
以及如何正确调试 CUDA 内核?我知道 CPU 和 GPU 代码不能同时调试。
编辑:
我很确定加载超过 200 个内核会使其崩溃。单个 gpu::GpuMat 声明本身有 100 多个内核(模块),然后 SURF、BFM 和类似算法运行其余的......
我只想调试放置断点的内核(即我自己的内核,而不是 OpenCV 的内核)。是否可以以某种方式排除其他模块/内核?
谢谢!