一种侵入式的调试打印到ram文件的方法



我正在寻找一种将局部变量写入文件以将其用作调试机制的非侵入性方法。非侵入性部分意味着调试代码应该有尽可能少的执行时间,并且应该尽量减少对正在调试的方法的干扰。

的例子:

在代码的深处有一个method

unsigned int method(short *frame, int length)
    {
    process-frame(short *frame, int length);
    }

每秒被调用100次,我想打印出frame的内容。因为这个过程是时间敏感的,我不能打印到终端,但会打印到ram中的文件。我正在寻找一种方法来做到它的功能范围内。

我到目前为止最好的是这个。我愿意用更优化的方法回答其他问题

unsigned int method(short *frame, int length)
    {
    static FILE * rawPcmLog; 
    if (rawPcmLog == NULL) rawPcmLog = fopen("/tmp/rawPcm","w"); 
    int i;
    for (i=0; i<length; i++){
        fwrite(frame,length, 1,rawPcmLog);
    }
    process-frame(short *frame, int length);
    }

最新更新