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

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

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

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

這個時候可以使用ALOGE/ALOGI/ALOGW 等方法打印出log
不過有些地方不能這么使用,因?yàn)橐蕾噇ibutils libctuils庫
在mk文件見添加如下依賴編譯即可
復(fù)制代碼 代碼如下:

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

2.通常的堆棧
復(fù)制代碼 代碼如下:

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

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

#include <utils/CallStack.h> 

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

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的反匯編工具,在設(shè)置后編譯環(huán)境后就可以正常使用了,命令如下:
復(fù)制代碼 代碼如下:

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

相關(guān)文章

最新評論

维西| 合水县| 库车县| 英超| 广水市| 嘉黎县| 临城县| 潜山县| 新干县| 汝州市| 稻城县| 应城市| 丰顺县| 苍梧县| 黎平县| 会东县| 周宁县| 利辛县| 定襄县| 潼关县| 万山特区| 泸定县| 琼海市| 奉贤区| 阳高县| 裕民县| 马鞍山市| 吴江市| 山阴县| 瑞丽市| 双牌县| 孟津县| 定陶县| 鄄城县| 环江| 翁源县| 山阴县| 得荣县| 大宁县| 蒙自县| 海丰县|