我已經包含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