2016-05-13 13 views
3

私はcuda-memcheckを使用してアプリケーションをデバッグしようとしています。私がしたいのは、私のアプリからの出力を1つのファイルにリダイレクトすることですが、他方では、cuda-memcheckのstdoutとstderrを別のファイルにリダイレクトします。しかし、私はそれを働かせることはできません。これは:Windows cmdリダイレクトサブコマンドの出力をファイル

cuda-memcheck "app.exe > stdout1.txt" > memcheck.log 2>&1 

は絶対に何もしません。しかし、引用符内のリダイレクトを削除すると(私のアプリ出力は無視されます)、それは実行されます。ですから、サブコマンドの標準出力をどのようにリダイレクトするのでしょうか?

+0

'cuda-memcheck'の' --log-file'や '--save'のオプションを試しましたか? – kangshiyin

+0

memcheckの出力はリダイレクトされますが、起動するアプリケーションの出力はリダイレクトされません。 – Jofo

答えて

1

cuda-memcheckさんのあなたのご意見によると、次のコマンドを使用することができます。

cuda-memcheck --log-file memcheck.log app.exe >app.stdout.txt 

編集

ここではCentOS上の私のテストです。 Win32アプリケーションでは動作しますが、Win32アプリケーションでは動作しません。

a.cu

#include <iostream> 
int main() { 
    std::cout<< "hello world to stdout!" <<std::endl; 
    std::cerr<< "hello world to stderr!" <<std::endl; 
    return 0; 
} 

コンパイルコマンド:

$ nvcc -O3 -o a a.cu 

実行]コマンド:

$ cuda-memcheck --log-file mem.log a >a.stdout.log 2>a.stderr.log 

結果ファイル:

$ cat mem.log 
========= CUDA-MEMCHECK 
========= ERROR SUMMARY: 0 errors 

$ cat a.stdout.log 
hello world to stdout! 

$ cat a.stderr.log 
hello world to stderr! 
+0

まだ動作していない、 "app.stdout.txt"はデバッグ後に空です – Jofo

+0

@ Jofo私のテストを参照してください。なぜそれがあなたのために働かないか分からない。 – kangshiyin

+0

@Jofo CentOSで動作します。 Windowsで何らかの変更が必要な場合があります。 – kangshiyin

関連する問題