ubuntu 在 R40e 上 還有 Debian 在 Sempron 2600 上

2012年1月2日 星期一

rild AT_DUMP 的陷阱

android 的 ril。
AT_DUMP( ) 原先應該是要 dump 到 file (ref comment)。
但是好像是沒有implement,所以用 LOGD,但是又不一樣。所以把 AT_DEBUG set 1,不會動作。

不能用 LOGD("%s",buff) 直接輸出的原因是 buff 有可能是部份的 AT string,還沒到 ending,所以沒有 ending null。

所以 AT_DUMP( )的 argument 有 len。

但是要注意,如果想改用 memcpy( ) copy 到 tmp 後加上 ending null 再印出去,run 起來會 exception。
因為在reference-ril.c 有這樣呼叫的: static void * mainLoop(void *param) { .... AT_DUMP("== ", "entering mainLoop()", -1 ); .... .. len 是 -1.

所以真的要改 AT_DUMP( ) 的話,要針對 len -1 作處理。

沒有留言:

標籤

網誌存檔