调试基于控制台的应用程序
Imatest 库生成的大部分诊断信息都会输出到 STDOUT 和 STDERR 流。在 4.0 及更高版本中,可以通过添加以下 INI 设置来实现:
[api]
debug=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()函数仅适用于非常量级的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,则必须捕获流输出。作为我们操作员控制台项目的一部分,我们已经设置了捕获这些流的方法。
请参阅以下文件,了解如何捕获流: