最近工作上發現 , 有使用者的程式使用 printf 來 debug , 不過卻沒有輸出 .
網路上有說使用 fprintf + stdout or stderr 等方式 . 不過在我們的環境下卻沒有辦法 .
最後 , 我使用 暴力方式 解決了 !!
首先 , 先了解 console 是哪個 tty . 然後在 程式內 直接 fopen tty , 接著用 fprointf 的方式直接寫過去就可以了 !!
雖然這樣的方式不好 , 不過先可以用 , 有時間在研究一下正規方式 .
============================
#define AP_DEBUG_ON
#if defined (AP_DEBUG_ON)
#define DEBUG_MSG(S,A...) fprintf(ttyfd,"==== [%s]:[%d]:" S "\n",__FUNCTION__,__LINE__,## A)
#else
#define DEBUG_MSG(S,A...) do {} while (0)
#endif
FILE *ttyfd ;
int main(int argc, char **argv)
{
ttyfd = fopen("/dev/ttyS0", "w");
...................................
DEBUG_MSG("flag:%d -> %d ",flag,flag ? 0 : 1 );
}
沒有留言:
張貼留言