最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android雜記:C++文件的添加log方法分享

 更新時間:2013年09月25日 16:11:47   作者:  
這篇文章介紹了android雜記:C++文件的添加log方法,有需要的朋友可以參考一下
1.添加頭文件
復制代碼 代碼如下:

#include <utils/Log.h>  
//或者 
#include <cutils/Log.h> 

這個時候可以使用ALOGE/ALOGI/ALOGW 等方法打印出log
不過有些地方不能這么使用,因為依賴libutils libctuils庫
在mk文件見添加如下依賴編譯即可
復制代碼 代碼如下:

#LOCAL_MODULE := ... ...  
#base_intermediates := $(call local-intermediates-dir)  //該行之下添加,這個貌似是查找依賴文件 
LOCAL_SHARED_LIBRARIES += \ 
        libutils libcutils 
    ... ... 
include $(BUILD_SHARED_LIBRARY) //該行之上,這時候是開始編譯 

2.通常的堆棧
復制代碼 代碼如下:

android::CallStack stack; 
stack.update(1); 
stack.dump(""); 

這個需要加個頭文件,不過要特別注意一個問題,這個頭必須加在所有頭的末尾,不然用不了滴,尤其是看android源碼里webkit的時候。需要加的頭文件如下:
復制代碼 代碼如下:

#include <utils/CallStack.h> 

今天有事,后續(xù)補全,如果大家有更好的,或者特殊的情況,歡迎推薦
3.C++另類堆棧
這個方法是可文件控制的。通過對android設備中的文件讀寫,然后空指針賦值,這樣就可以達到文件控制的目的
該方法好處只要是C、C++文件均可添加此log,無依賴,便捷!也有個不好處,log只能運行到你添加的地方,因為崩庫了,后面的無法運行了。
實現(xiàn)代碼如下:
復制代碼 代碼如下:

FILE *fp = NULL; //需要注意  
fp = fopen("data/test", "r"); 
if(NULL == fp) 

    return false; //需要返回值時使用  
} esle { 
    fclose(fp); 
    int *fp = NULL; 
    *fp = 100;  //空指針賦值出錯,小樣就它錯了  
    return false; //需要返回值時使用  


一般崩庫了是看不到堆棧的,我們可以通過反匯編來查看具體的堆棧。
在android里編譯出的庫有兩套:一套無符號的,是查看不了的,另一套是有符號的,我們查看的就是這套,
有符號的編譯出來后是在路徑(\out\target\product\generic\symbols\system\lib)下
android中自帶有arm的反匯編工具,在設置后編譯環(huán)境后就可以正常使用了,命令如下:
復制代碼 代碼如下:

arm-eabi-addr2line -f -e **.so 地址1 地址2 ... ... 

相關文章

最新評論

娄烦县| 延吉市| 革吉县| 万山特区| 宜昌市| 潍坊市| 中江县| 汤原县| 东辽县| 丰县| 同心县| 罗田县| 乌兰察布市| 南皮县| 汤阴县| 泾川县| 乌兰察布市| 镇原县| 娱乐| 孙吴县| 宝清县| 林甸县| 合江县| 贵州省| 洱源县| 迁安市| 临城县| 正安县| 泸溪县| 浙江省| 高雄市| 尼勒克县| 淅川县| 临江市| 台江县| 古蔺县| 敦化市| 龙胜| 理塘县| 康平县| 大竹县|