青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

++wythern++

X presents Y for a better Z

【轉(zhuǎn)】Android 調(diào)試技術(shù)

原文鏈接:
http://www.bobbog.com/archives/19


Android 調(diào)試技術(shù)

by bob

一、JAVA層單步調(diào)試

參見“用eclipse單步調(diào)試Laucher
參見“用eclipse編譯調(diào)試adnroid的Browser

二、Native層單步調(diào)試

參見“使用GDB 單步調(diào)試Android本地代碼

三、JAVA層堆棧打印

1. 在指定的函數(shù)內(nèi)打印相關(guān)java調(diào)用

Log.d(TAG,Log.getStackTraceString(new Throwable()));

2. 普通JAVA進程堆棧

ActivityManagerService.dumpStackTraces

保存在系統(tǒng)設(shè)置dalvik.vm.stack-trace-file指定的文件data/anr/traces.txt中。可以包含多個進程堆棧信息。

3. 內(nèi)核進程堆棧

dumpKernelStackTraces,該函數(shù)為私有函數(shù),不可調(diào)用。
代碼在frameworks/base/services/java/com/android/server/Watchdog.java
保存在系統(tǒng)設(shè)置dalvik.vm.stack-trace-file指定的文件data/anr/traces.txt中。

4. 出異常時打印當前堆棧

Exception::printStackTrace()

try {  ... } catch (RemoteException e) {   e.printStackTrace();   ... }

5. 輸出指定進程的堆棧

Process.sendSignal(pid, Process.SIGNAL_QUIT)

保存在data/anr/traces.txt。
這個只對java進程有效,由dalvikvm的SignalCatcher.c處理。

四、Native層堆棧打印

1. CallStack

使用方式:

#include <utils/CallStack.h> ... CallStack stack; stack.update(); stack.dump("");  // the parameter is prefix of dump

在使用之前需要修改system/core/include/arch/linux-arm/AndroidConfig.h

#define HAVE_DLADDR 1 #define HAVE_CXXABI 1

并在文件frameworks/base/libs/utils/Android.mk中大約105行(LOCAL_SHARED_LIBRARIES)后添加

ifeq ($(TARGET_OS),linux) LOCAL_SHARED_LIBRARIES += libdl endif

重新編譯,push生成的libutils.so到/system/lib/目錄下,重啟設(shè)備。

五、JAVA異常分析

這個android會輸出信息到logcat。容易分析。

六、Natvie異常分析

native進程異常會導致
debuggerd會輸出信息到logcat并保存到/data/tombstones。
可以修改system/core/debuggerd/debuggerd.c中dump_stack_and_code的代碼滿足更深的調(diào)試信息需求。

七、日志Log系統(tǒng)

在java中使用

import android.util.Log; ... Log.d(TAG,"log info");

在Native代碼中使用

#define LOG_TAG "YOUR_LOGTAG" ... #include <utils/Log.h> #define LOG_NDEBUG 0 ... LOGD("log info");

或者

Log.d(LOG_TAG,“log info”);

使用adb logcat時可以只顯示特定類別的LOG,還可以通過參數(shù) -v threadtime 顯示線程號及時間信息。
普通標準輸出轉(zhuǎn)為Logcat

#system/bin/logwrapper 進程名

八、其他調(diào)試手段(命令行)

1. 打印指定JAVA進程的堆棧到文件中

#kill -3 pid

這里的3就是3.5節(jié)的Process.SIGNAL_QUIT。
輸出在data/anr/traces.txt文件中。
這個只對java進程有效,由dalvikvm處理。

2. 打印指定進程的堆棧到Logcat

#kill -11 pid 或者 #kill -7 pid

這個有時有效。其原理是利用了(六)節(jié)的機制。
可以用adb logcat看堆棧調(diào)用輸出。

3. 打印指定進程的系統(tǒng)調(diào)用

#strace -f -p pid -o output

主要輸出文件、SOCKET、鎖等系統(tǒng)操作的信息。
-f表示跟蹤所有子進程.
-o輸出log到指定文件,可不用。

posted on 2012-04-16 19:02 wythern 閱讀(5695) 評論(0)  編輯 收藏 引用

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久久久久久久久久久9999| 欧美日韩国产成人精品| 久久视频在线看| 一区二区不卡在线视频 午夜欧美不卡'| 国产日韩欧美制服另类| 国产亚洲欧美一区二区| 国产伪娘ts一区| 狠狠色丁香婷婷综合影院| 国产亚洲激情| 1024成人网色www| 亚洲黄色在线| 亚洲夜间福利| 久久综合给合久久狠狠狠97色69| 麻豆精品传媒视频| 亚洲高清视频的网址| 欧美大学生性色视频| 亚洲免费大片| 欧美一区二区三区精品| 欧美一区三区二区在线观看| 久久久久久91香蕉国产| 免费高清在线视频一区·| 欧美二区在线播放| 国产一区二区三区免费在线观看 | 久久久激情视频| 久久综合中文字幕| 欧美日韩亚洲在线| 国产精品永久入口久久久| 在线看国产日韩| 亚洲欧美成人| 欧美高清不卡| 亚洲欧美在线免费观看| 欧美1区2区3区| 国产精品亚洲成人| 91久久久久久| 久久久久在线观看| 亚洲婷婷在线| 裸体女人亚洲精品一区| 国产精品亚发布| 日韩一级黄色大片| 久久久久九九九九| 亚洲视频在线观看网站| 另类人畜视频在线| 国产主播一区二区三区四区| 亚洲性感美女99在线| 免费不卡在线观看av| 亚洲一二三级电影| 欧美日韩午夜激情| 亚洲日本va午夜在线电影| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲精品视频一区| 久久大逼视频| 欧美gay视频| 亚洲精品国偷自产在线99热| 在线视频日韩| 久久国产精品免费一区| 亚洲一区二区三区在线观看视频 | 欧美成人情趣视频| 在线看片一区| 亚洲国产高清aⅴ视频| 免费毛片一区二区三区久久久| 狠狠色狠狠色综合日日tαg| 欧美华人在线视频| 女女同性女同一区二区三区91| 欧美国产日韩免费| 欧美日韩妖精视频| 久久精品欧美| 国产一区自拍视频| 亚洲欧美在线网| 在线视频欧美日韩精品| 欧美一级专区| 中文亚洲免费| 亚洲精品社区| 韩日欧美一区二区| 99re热精品| 亚洲大胆人体在线| 久久综合伊人77777| 欧美一区三区二区在线观看| 欧美激情综合五月色丁香小说| 亚洲国产精品第一区二区| 欧美国产精品久久| 在线天堂一区av电影| 一区二区三区**美女毛片| 亚洲深夜福利网站| 亚洲高清视频的网址| 久久精品国产久精国产爱| 欧美一区二区在线视频| 欧美视频不卡| 亚洲国产高清自拍| 一区二区免费在线视频| 久久夜色精品国产欧美乱极品| 欧美日韩18| 欧美一区二区高清在线观看| 久久久99国产精品免费| 国产欧美精品va在线观看| 性欧美暴力猛交另类hd| 久久色中文字幕| 伊人久久久大香线蕉综合直播| 亚洲第一区在线| 国产精品亚洲人在线观看| 亚洲欧美大片| 亚洲人妖在线| 欧美成人一区二区三区在线观看| 999亚洲国产精| 国产精品亚洲片夜色在线| 欧美一区中文字幕| 一本色道久久| 国产丝袜一区二区三区| 国产女人精品视频| 亚洲欧美日韩一区二区在线| 欧美成人精品福利| 久久经典综合| 亚洲性线免费观看视频成熟| 亚洲第一区色| 国产精品视频免费一区| 国产精品一区二区三区观看| 久久九九国产精品| 欧美区在线播放| 一本色道久久综合亚洲精品不卡| 亚洲免费在线观看视频| 在线播放精品| 国产精品狼人久久影院观看方式| 亚洲男同1069视频| 久久久久免费| 欧美黄网免费在线观看| 99ri日韩精品视频| 久久综合久久综合久久综合| 国产精品久久看| 亚洲精品在线视频观看| 久久久久九九九| 亚洲在线视频免费观看| 欧美激情亚洲国产| 亚洲福利专区| 免费看的黄色欧美网站| 亚洲自拍偷拍网址| 国产精品乱人伦一区二区 | 亚洲天堂偷拍| 亚洲欧美日本日韩| 亚洲国产精品悠悠久久琪琪| 先锋影音久久| 国产亚洲精品aa| 久久精品五月婷婷| 久久精品人人做人人爽电影蜜月| 国产欧美精品在线播放| 亚洲制服欧美中文字幕中文字幕| 日韩一二在线观看| 国产精品久久久久久久久久ktv| 亚洲欧美日韩中文视频| 午夜精品久久久久久| 亚洲激情视频在线观看| 中文亚洲视频在线| 亚洲精品免费电影| 亚洲国产日韩一级| 欧美日韩在线不卡| 亚洲欧美日韩精品久久奇米色影视| 亚洲国产精品久久久久秋霞蜜臀| 久久婷婷国产综合尤物精品| 亚洲精品视频在线| 亚洲欧美国产高清va在线播| 国产在线高清精品| 亚洲精品在线观| 亚洲精品欧美专区| 国产日韩成人精品| 亚洲午夜精品视频| 欧美激情视频在线播放| 久久亚洲午夜电影| 亚洲图片欧美午夜| 亚洲欧美精品中文字幕在线| 欧美日韩一区二区欧美激情 | 欧美高清视频一区| 午夜一区二区三区不卡视频| 国产精品久久久久aaaa九色| 欧美一区二视频| 欧美大片专区| 久久野战av| 欧美日韩另类综合| 欧美不卡在线| 国产欧美精品一区二区色综合| 欧美xxxx在线观看| 国产精品亚洲а∨天堂免在线| 欧美黄色小视频| 在线观看国产精品淫| 亚洲欧美欧美一区二区三区| 亚洲第一久久影院| 久久精品视频导航| 欧美一区二区三区四区高清| 国产一区二区三区在线观看精品 | 99精品免费视频| 欧美老女人xx| avtt综合网| 久久五月激情| 亚洲国产精品女人久久久| 久久精品亚洲精品国产欧美kt∨| 午夜精品福利一区二区蜜股av| 欧美天堂在线观看| 亚洲特级毛片| 蜜桃av久久久亚洲精品| 亚洲美女视频在线免费观看| 欧美日韩国产综合网| 午夜精品美女自拍福到在线| 欧美在线你懂的|