私はhelper_cuda.h
を含んでおり、私のコードではすべてのCUDA呼び出しでcheckCudaErrors
マクロを使用しています。checkCudaErrorsがエラー情報を表示しない
checkCudaErrors(cudaMalloc(&GPUCameraData, sizeof(float) /*<-- Should be HCameraData */));
checkCudaErrors(cudaMemcpy(GPUCameraData, CPUCameraData, sizeof(HCameraData)
, cudaMemcpyHostToDevice));
アプリケーションはエラーコード1で終了しますが、情報は出力されません。最初の行を折って2行目に入ると、_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-stderr-to-the-output-debug-console-of-microsoft-visual-studi)) –
@RobertCrovella stderrパイプをエラーログテキストファイルにルーティングし、エラーメッセージがここに正しく出力されるようになりました。私はそれらをVS IDEの出力ログにルーティングする方法を理解しようとします。あなたの提案を答えとして追加してください。 – henrikdahlberg