我已经包含helper_cuda.h
,我在我的代码中的每个CUDA调用上都使用了宏checkCudaErrors
。我已经通过下面的代码强制的错误:checkCudaErrors不打印错误信息
checkCudaErrors(cudaMalloc(&GPUCameraData, sizeof(float) /*<-- Should be HCameraData */));
checkCudaErrors(cudaMemcpy(GPUCameraData, CPUCameraData, sizeof(HCameraData)
, cudaMemcpyHostToDevice));
应用简单地,错误代码1退出时,它应该,但不打印信息。如果我在第一行中断并进入第二行,则看到_cudaGetErrorEnum()
helper_cuda.h
的确返回"cudaErrorInvalidValue"
,但输出中没有打印任何信息。
我使用的开发环境是Visual Studio 2013,我已经在调试和发布模式下对此进行了测试。
注意:我与OpenGL和glGetError有同样的问题。看起来好像任何fprintf(stderr, ...);
来自不是直接在我自己的文件结构中的代码的调用都不会打印任何东西。
您是从命令行还是在VS中运行程序?如果您正在VS内运行该程序,请尝试从命令行运行该程序。如果错误打印输出发生在那里,但不在VS中,那么你需要检查你的VS配置(即[找出stderr管道路由到...](http://stackoverflow.com/questions/2683249/redirect- stdout-and-stdr-to-the-output-debug-console-of-microsoft-visual-studi)) –
@RobertCrovella我将stderr管道路由到错误日志文本文件,现在错误消息正确地打印在那里。我将尝试弄清楚如何将它们路由到VS IDE中的输出日志。随意添加您的建议作为答案。 – henrikdahlberg