x86 シミュレータは、複数のカーネルを個別のスレッドで並列に実行します。これは、printf()
デバッグ メッセージを標準出力で表示したときに、メッセージが混ざって表示され、どちらのメッセージなのかはっきりしない場合があります。どのカーネルがどの行のメッセージを出力したのかを特定するには、X86SIM_KERNEL_NAME
マクロを使用すると便利です。次に、このマクロを printf()
と組み合わせて使用する例を示します。
注記: X86SIM_KERNEL_NAME を使用するには、次のコードに示すように adf/x86sim/x86simDebug.h を含める必要があります。
#include <adf/x86sim/x86simDebug.h>
void simple(input_window_float * in, output_window_float * out) {
for (unsigned i=0; i<NUM_SAMPLES;i++) {
float val = window_readincr(in);
window_writeincr(out,val+0.15);
}
static int count = 0;
printf("%s: %s %d\n",__FILE__,X86SIM_KERNEL_NAME,++count);
}