文章分類

2012年3月28日 星期三

Android C/C++ 層印Log的方法之二

之前發了一篇也是在C/C++層加LOG的方法來Debug。

我最近在看Chromium的原始碼時,又發現了一個方法,

因此整理在這邊分享給大家。

2012年3月25日 星期日

[Untouchables]法國電影真人真事改編 觀後心得

菲利普是一個大富豪,但是在一次跳傘事件,頸部以下全部癱瘓。

需要一個有力的看護來照顧他生活起居,而選到的看護竟然是剛出獄沒多久,只

是想領失業金的小混混。劇中,耐人尋味的是菲利普說的一句話,他需要的看護

就是希望沒那麼有同情心的人,或許這樣才不會讓自己覺得很可悲。

然而,德瑞斯直接、不拘小節、幽默、充滿樂觀的個性,帶給菲利普更多想要活

下去的動力。德瑞斯不僅幫菲利普要到持續通信六個月的筆友的電話,並且

還安排他們約會。可惜,最後菲利普還是沒能跨出心中的障礙,提前離開了約會地

點。在菲利普受藥物副作用影響時,德瑞斯總是能陪他度過一次一次的發作。

兩個人漸漸地毫不諱言的互相談論音樂、性、教育,彼此交換自己的看法。


2012年3月24日 星期六

在Android C/C++層使用LOG來Debug

最近在trace Android External中的Webkit原始碼,遇到一個卡了我好幾天的問題。

一開始想說都是C/C++檔案,於是乎,就挑了Camera中HAL層的C/C++檔案,用

同樣方法來Debug

1)#include<utils/Log.h>

2)LOGD(“XXX”);

或者

1)#define LOG_TAG “your TAG”

2)#include<cutils/log.h>

這兩個方法在我的環境上沒有效。

結果我認為會跑到的函數,自己的LOG都沒有印出來,make也沒有任何錯誤。

最後用obj dump才知道,應該是有跑到,但是LOG沒有印。所以我猜測,

上述這兩個方法在我的環境上沒有效。於是又繼續Google,

找看看有沒有其它的解法,結果終於找到了,解法如下:

2012年3月23日 星期五

[JNI] C/C++ code WTF String轉char *

最近在Debug Android Source Code JNI層的時候遇到的問題,

其實網路上一下就找得到答案。


我們常常利用:

LOGD(“XXX”); or LOGD(“XXX %s”, temp);

來驗證系統執行時,是否有跑到某個函數?

但是如果今天temp string是WTF 型態String,編譯一定不會過,

它會有error訊息:WTF string無法轉換至char *,這個時候該怎麼辦?