欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

#include <utils/CallStack.h> 

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

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

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


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

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

相關(guān)文章

最新評(píng)論