Imatest ITのデバッグ

コンソールベースのアプリケーションのデバッグ

Imatestライブラリによって生成される診断情報の多くは、STDOUTおよびSTDERRストリームに出力されます。4.0以降では、次のINI設定を追加することでこれが可能になります。

[api]
デバッグ=1

テスタープログラムでこの出力を取得し、ログファイルに保存したい場合は、次のようにプログラムを実行してください。

testerprogram.exe > outputlog.txt 2>&1

outputlog.txt を調べれば、何が問題だったのかの詳細がわかるはずです。ご不明な点があれば、このファイルをImatest ヘルプセンターまでお送りください。弊社で障害の原因を特定できるはずです。また、Imatest INI ファイル、生成された JSON 出力ファイル、そして障害が特定のイメージによって引き起こされている場合はそのイメージファイルも併せてお送りください。

GUIベースのアプリケーションのデバッグ

Imatest IT への呼び出しでは、try ブロック内に記述し、catch ブロックでmwExceptionオブジェクトを受け取るようにしてください。次に、 mwExceptionクラスのprint_stack_trace()メンバ関数への呼び出しを追加してください。これにより、Matlab のスタック トレースが cerr に出力されます。なお、 print_stack_trace()は、const でないmwExceptionオブジェクトに対してのみ使用できます。例:

試す {
acquire_image(2, im_orig, vstr, source_id, vararginParam);
}
catch (mwException& e) {
cout << "実行エラー!" << endl;
cerr << e.what() << endl;
e.print_stack_trace();
}

GUIプログラムは、呼び出し元のライブラリの標準出力(STDOUT)および標準エラー出力(STDERR)ストリームをブロックします。アプリケーションがエラー出力(cerr)を出力しない場合は、ストリーム出力をキャプチャする必要があります。弊社のOperator Consoleプロジェクトでは、これらのストリームをキャプチャするための仕組みを構築しています。

ストリームをキャプチャする方法については、以下のファイルを参照してください。